{
  "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": "failed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initializePepperstakeContractWithDefaults",
      "outputs": [
        {
          "internalType": "contract PepperStake",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "setUp",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testApproveEmptyList",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testApproveForParticipants",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testApproveInvalidParticipant",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testApproveWindowOver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testCreatorParticipation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testCreatorParticipationWithIncorrectAmount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testParticipantAllowList",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testParticipantHasNotCompleted",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testPostCompletionWindowDistribution",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testPostCompletionWindowDistributionAlreadyCalled",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testPostCompletionWindowDistributionReturnWindowNotOver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testReturnStake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testReturnStakeNonSupervisor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testSponsor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testSponsorReturnWindowOver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testStake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testStakeAlreadyParticipating",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testStakeIncorrectAmount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testStakeMaxParticipantsReached",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testStakeReturnWindowOver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x60806040526007805460ff191660011790556200001b620000b6565b600855604380546001600160a01b03199081167389ac24e9d325e5935dd9098bddc7f9879a6b0e291790915560448054821673cdaeda3f1bd11c1ec375a3746d05b54634c58c2517905560458054821673e80fb92299ed640261f22bb7d7b1b877eb589e8517905560468054909116733445f4fe153b2c8b267ef6203c478ca3a552827a179055348015620000af57600080fd5b506200186a565b6000604051806102200160405280604051806060016040528060405180604001604052806005815260200164105b9d9a5b60da1b8152508152602001617a6981526020016040518060400160405280601581526020017f687474703a2f2f3132372e302e302e313a383534350000000000000000000000815250815250815260200160405180606001604052806040518060400160405280600781526020016612185c991a185d60ca1b8152508152602001617a6981526020016040518060400160405280601581526020017f687474703a2f2f3132372e302e302e313a383534350000000000000000000000815250815250815260200160405180606001604052806040518060400160405280600781526020016613585a5b9b995d60ca1b8152508152602001600181526020016040518060400160405280601f81526020017f68747470733a2f2f6170692e6d7963727970746f6170692e636f6d2f657468008152508152508152602001604051806060016040528060405180604001604052806006815260200165476f65726c6960d01b8152508152602001600581526020016040518060600160405280603c815260200162007be4603c9139905281526040805160a0808201835260076060808401918252665365706f6c696160c81b60808086019190915291845262aa36a760208581019190915285518087018752601781527f68747470733a2f2f7270632e7365706f6c69612e646576000000000000000000818301528587015280870194909452845180840186526008818301908152674f7074696d69736d60c01b828501528152600a8186015285518087018752601b81527f68747470733a2f2f6d61696e6e65742e6f7074696d69736d2e696f000000000081870152818701528587015284518084018652600e8183019081526d4f7074696d69736d476f65726c6960901b8285015281526101a48186015285518087018752601a81527f68747470733a2f2f676f65726c692e6f7074696d69736d2e696f00000000000081870152818701528187015284518084018652600b8183019081526a417262697472756d4f6e6560a81b82850152815261a4b18186015285518087018752601c81527f68747470733a2f2f617262312e617262697472756d2e696f2f7270630000000081870152818701528287015284518084018652601181830190815270417262697472756d4f6e65476f65726c6960781b9382019390935291825262066eed828501528451908101855260258082529290950194909384019290919062007c2090830139905281526040805160a08082018352600c60608084019182526b417262697472756d4e6f766160a01b60808086019190915291845261a4ba60208581019190915285518087018752601c81527f68747470733a2f2f6e6f76612e617262697472756d2e696f2f72706300000000818301528587015280870194909452845180840186526007818301908152662837b63cb3b7b760c91b82850152815260898186015285518087018752601781527f68747470733a2f2f706f6c79676f6e2d7270632e636f6d00000000000000000081870152818701528587015284518084018652600d8183019081526c506f6c79676f6e4d756d62616960981b828501528152620138818186015285518087018752601e81527f68747470733a2f2f7270632d6d756d6261692e6d617469632e746f6461790000818701528187015281870152845192830185526009838201908152684176616c616e63686560b81b84840152835261a86a838501528451908101855260258082529190950194919384019262007bbf90830139815250815260200160405180606001604052806040518060400160405280600d81526020016c4176616c616e63686546756a6960981b815250815260200161a86981526020016040518060600160405280602a815260200162007c45602a9139815250815260200160405180606001604052806040518060400160405280600d81526020016c21373129b6b0b93a21b430b4b760991b81525081526020016038815260200160405180606001604052806021815260200162007c6f60219139815250815260200160405180606001604052806040518060400160405280601481526020017f426e62536d617274436861696e546573746e65740000000000000000000000008152508152602001606181526020016040518060600160405280602e815260200162007b91602e9139905281526040805160a081018252600b606082019081526a23b737b9b4b9a1b430b4b760a91b60808301528152606460208281019190915282518084018452601b81527f68747470733a2f2f7270632e676e6f736973636861696e2e636f6d00000000008183015292820192909252910152805180516009919082908190620007a990826200151a565b506020820151600182015560408201516002820190620007ca90826200151a565b5050506020820151805160038301908190620007e790826200151a565b5060208201516001820155604082015160028201906200080890826200151a565b50505060408201518051600683019081906200082590826200151a565b5060208201516001820155604082015160028201906200084690826200151a565b50505060608201518051600983019081906200086390826200151a565b5060208201516001820155604082015160028201906200088490826200151a565b50505060808201518051600c8301908190620008a190826200151a565b506020820151600182015560408201516002820190620008c290826200151a565b50505060a08201518051600f8301908190620008df90826200151a565b5060208201516001820155604082015160028201906200090090826200151a565b50505060c08201518051601283019081906200091d90826200151a565b5060208201516001820155604082015160028201906200093e90826200151a565b50505060e08201518051601583019081906200095b90826200151a565b5060208201516001820155604082015160028201906200097c90826200151a565b5050506101008201518051601883019081906200099a90826200151a565b506020820151600182015560408201516002820190620009bb90826200151a565b5050506101208201518051601b8301908190620009d990826200151a565b506020820151600182015560408201516002820190620009fa90826200151a565b5050506101408201518051601e830190819062000a1890826200151a565b50602082015160018201556040820151600282019062000a3990826200151a565b50505061016082015180516021830190819062000a5790826200151a565b50602082015160018201556040820151600282019062000a7890826200151a565b50505061018082015180516024830190819062000a9690826200151a565b50602082015160018201556040820151600282019062000ab790826200151a565b5050506101a082015180516027830190819062000ad590826200151a565b50602082015160018201556040820151600282019062000af690826200151a565b5050506101c08201518051602a830190819062000b1490826200151a565b50602082015160018201556040820151600282019062000b3590826200151a565b5050506101e08201518051602d830190819062000b5390826200151a565b50602082015160018201556040820151600282019062000b7490826200151a565b50505061020082015180516030830190819062000b9290826200151a565b50602082015160018201556040820151600282019062000bb390826200151a565b50505090505060007f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663a85a84186040518163ffffffff1660e01b81526004016000604051808303816000875af115801562000c1f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000c4991908101906200166a565b905060005b8151811015620013575760008083838151811062000c705762000c70620017f7565b602002602001015160006002811062000c8d5762000c8d620017f7565b602002015184848151811062000ca75762000ca7620017f7565b602002602001015160016002811062000cc45762000cc4620017f7565b60200201519150915062000cfc8260405180604001604052806005815260200164185b9d9a5b60da1b8152506200136060201b60201c565b1562000d1757600b62000d1082826200151a565b506200133f565b62000d4882604051806040016040528060078152602001661a185c991a185d60ca1b8152506200136060201b60201c565b1562000d5c57600e62000d1082826200151a565b62000d8d82604051806040016040528060078152602001661b585a5b9b995d60ca1b8152506200136060201b60201c565b1562000da157601162000d1082826200151a565b62000dd18260405180604001604052806006815260200165676f65726c6960d01b8152506200136060201b60201c565b1562000de557601462000d1082826200151a565b62000e1682604051806040016040528060078152602001667365706f6c696160c81b8152506200136060201b60201c565b1562000e2a57601762000d1082826200151a565b62000e5c82604051806040016040528060088152602001676f7074696d69736d60c01b8152506200136060201b60201c565b1562000e7057601a62000d1082826200151a565b62000ed1826040518060400160405280600f81526020016e6f7074696d69736d5f676f65726c6960881b8152506040518060400160405280600f81526020016e6f7074696d69736d2d676f65726c6960881b815250620013bd60201b60201c565b1562000ee557601d62000d1082826200151a565b62000f40826040518060400160405280600c81526020016b617262697472756d5f6f6e6560a01b8152506040518060400160405280600c81526020016b617262697472756d2d6f6e6560a01b815250620013bd60201b60201c565b1562000f5457602062000d1082826200151a565b62000fd1826040518060400160405280601381526020017f617262697472756d5f6f6e655f676f65726c69000000000000000000000000008152506040518060400160405280601381526020017f617262697472756d2d6f6e652d676f65726c6900000000000000000000000000815250620013bd60201b60201c565b1562000fe557602362000d1082826200151a565b62001042826040518060400160405280600d81526020016c617262697472756d5f6e6f766160981b8152506040518060400160405280600d81526020016c617262697472756d2d6e6f766160981b815250620013bd60201b60201c565b156200105657602662000d1082826200151a565b6200108782604051806040016040528060078152602001663837b63cb3b7b760c91b8152506200136060201b60201c565b156200109b57602962000d1082826200151a565b620010fa826040518060400160405280600e81526020016d706f6c79676f6e5f6d756d62616960901b8152506040518060400160405280600e81526020016d706f6c79676f6e2d6d756d62616960901b815250620013bd60201b60201c565b156200110e57602c62000d1082826200151a565b6200114182604051806040016040528060098152602001686176616c616e63686560b81b8152506200136060201b60201c565b156200115557602f62000d1082826200151a565b620011b4826040518060400160405280600e81526020016d6176616c616e6368655f66756a6960901b8152506040518060400160405280600e81526020016d6176616c616e6368652d66756a6960901b815250620013bd60201b60201c565b15620011c857603262000d1082826200151a565b62001229826040518060400160405280600f81526020016e3137312fb9b6b0b93a2fb1b430b4b760891b8152506040518060400160405280600f81526020016e31373116b9b6b0b93a16b1b430b4b760891b815250620013bd60201b60201c565b156200123d57603562000d1082826200151a565b620012ba826040518060400160405280601781526020017f626e625f736d6172745f636861696e5f746573746e65740000000000000000008152506040518060400160405280601781526020017f626e622d736d6172742d636861696e2d746573746e6574000000000000000000815250620013bd60201b60201c565b15620012ce57603862000d1082826200151a565b62001329826040518060400160405280600c81526020016b33b737b9b4b9afb1b430b4b760a11b8152506040518060400160405280600c81526020016b33b737b9b4b996b1b430b4b760a11b815250620013bd60201b60201c565b156200133f57603b6200133d82826200151a565b505b505080806200134e906200180d565b91505062000c4e565b50600091505090565b60008160405160200162001375919062001835565b60405160208183030381529060405280519060200120836040516020016200139e919062001835565b6040516020818303038152906040528051906020012014905092915050565b600082604051602001620013d2919062001835565b6040516020818303038152906040528051906020012084604051602001620013fb919062001835565b6040516020818303038152906040528051906020012014806200146d5750816040516020016200142c919062001835565b604051602081830303815290604052805190602001208460405160200162001455919062001835565b60405160208183030381529060405280519060200120145b949350505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620014a057607f821691505b602082108103620014c157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200151557600081815260208120601f850160051c81016020861015620014f05750805b601f850160051c820191505b818110156200151157828155600101620014fc565b5050505b505050565b81516001600160401b0381111562001536576200153662001475565b6200154e816200154784546200148b565b84620014c7565b602080601f8311600181146200158657600084156200156d5750858301515b600019600386901b1c1916600185901b17855562001511565b600085815260208120601f198616915b82811015620015b75788860151825594840194600190910190840162001596565b5085821015620015d65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604080519081016001600160401b03811182821017156200160b576200160b62001475565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200163c576200163c62001475565b604052919050565b60005b838110156200166157818101518382015260200162001647565b50506000910152565b6000602082840312156200167d57600080fd5b81516001600160401b03808211156200169557600080fd5b818401915084601f830112620016aa57600080fd5b815181811115620016bf57620016bf62001475565b620016d060208260051b0162001611565b8082825260208201915060208360051b860101925087831115620016f357600080fd5b602085015b83811015620017eb578051858111156200171157600080fd5b8601603f81018a136200172357600080fd5b6200172d620015e6565b808b6060840111156200173f57600080fd5b602083015b60608401811015620017d9578051898111156200176057600080fd5b8401603f81018e136200177257600080fd5b60208101518a8111156200178a576200178a62001475565b6200179f601f8201601f191660200162001611565b8181528f6040838501011115620017b557600080fd5b620017c882602083016040860162001644565b855250506020928301920162001744565b508552505060209283019201620016f8565b50979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200182e57634e487b7160e01b600052601160045260246000fd5b5060010190565b60208152600082518060208401526200185681604085016020870162001644565b601f01601f19169190910160400192915050565b616317806200187a6000396000f3fe60806040523480156200001157600080fd5b5060043610620001755760003560e01c80637b5340cd11620000d3578063ba414fa61162000086578063ba414fa6146200024d578063bff886511462000268578063e608f5bf1462000272578063e63bdc2c146200027c578063fa7626d41462000286578063fdb5d2db146200029457600080fd5b80637b5340cd14620001f45780637bcf8810146200021b5780637d28054b14620002255780638d61b56e146200022f5780638db81b751462000239578063ac6a4242146200024357600080fd5b80633a1143da116200012c5780633a1143da14620001b85780633a1a859414620001c25780634c50463214620001cc5780634f9f4a0714620001d657806351e7974814620001e0578063523a6ee814620001ea57600080fd5b80630a9254e4146200017a5780630bb3f8f114620001865780630d930ecd14620001905780631fc168ee146200019a578063281fef2f14620001a45780632f64752714620001ae575b600080fd5b620001846200029e565b005b62000184620006ce565b6200018462000961565b6200018462000b96565b6200018462000f2b565b620001846200119b565b6200018462001456565b62000184620016ea565b6200018462001836565b6200018462001a3d565b6200018462001bea565b6200018462001e5a565b620001fe62002005565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018462002260565b620001846200253e565b62000184620026ee565b620001846200284f565b6200018462002b03565b6200025762002d5c565b604051901515815260200162000212565b6200018462002e89565b6200018462003017565b6200018462003150565b600754620002579060ff1681565b62000184620037c9565b604354604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600b60448201526a1c185c9d1a58da5c185b9d60aa1b6064820152600080516020620062c28339815191529063c657c71890608401600060405180830381600087803b1580156200031457600080fd5b505af115801562000329573d6000803e3d6000fd5b505060448054604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600c918101919091526b3830b93a34b1b4b830b73a1960a11b6064820152600080516020620062c2833981519152925063c657c7189150608401600060405180830381600087803b158015620003a757600080fd5b505af1158015620003bc573d6000803e3d6000fd5b5050604554604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600760448201526639b837b739b7b960c91b6064820152600080516020620062c2833981519152925063c657c7189150608401600060405180830381600087803b1580156200043257600080fd5b505af115801562000447573d6000803e3d6000fd5b5050604654604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600a60448201526939bab832b93b34b9b7b960b11b6064820152600080516020620062c2833981519152925063c657c7189150608401600060405180830381600087803b158015620004c057600080fd5b505af1158015620004d5573d6000803e3d6000fd5b505060435460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d631000006024820152600080516020620062c2833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200053d57600080fd5b505af115801562000552573d6000803e3d6000fd5b50506044805460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d631000006024820152600080516020620062c2833981519152935063c88a5e6d925001600060405180830381600087803b158015620005b957600080fd5b505af1158015620005ce573d6000803e3d6000fd5b505060455460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d631000006024820152600080516020620062c2833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200063657600080fd5b505af11580156200064b573d6000803e3d6000fd5b505060465460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d631000006024820152600080516020620062c2833981519152925063c88a5e6d9150604401600060405180830381600087803b158015620006b357600080fd5b505af1158015620006c8573d6000803e3d6000fd5b50505050565b6000620006da62002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b1580156200073257600080fd5b505af115801562000747573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200078e57600080fd5b505af1158015620007a3573d6000803e3d6000fd5b505060465460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b158015620007fe57600080fd5b505af115801562000813573d6000803e3d6000fd5b506000925060019150620008249050565b6040519080825280602002602001820160405280156200084e578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062000875576200087562003db7565b6001600160a01b03928316602091820292909201015260405163b468aca760e01b81529083169063b468aca790620008b290849060040162003dcd565b600060405180830381600087803b158015620008cd57600080fd5b505af1158015620008e2573d6000803e3d6000fd5b50505050816001600160a01b031663960fe94c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000925573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200094b919062003e1c565b6001146200095d576200095d62003e36565b5050565b60006200096d62002005565b6045546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b158015620009c557600080fd5b505af1158015620009da573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000a2157600080fd5b505af115801562000a36573d6000803e3d6000fd5b5050505050806001600160a01b0316639b0f8a506040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a7a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aa0919062003e1c565b66b1a2bc2ec500001462000ab85762000ab862003e36565b806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000afb57600080fd5b505af115801562000b10573d6000803e3d6000fd5b5050505050806001600160a01b0316639b0f8a506040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b54573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b7a919062003e1c565b67016345785d8a00001462000b935762000b9362003e36565b50565b60408051600180825281830190925260009160208083019080368337505060435482519293506001600160a01b03169183915060009062000bdb5762000bdb62003db7565b6001600160a01b03929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905066b1a2bc2ec500008160008151811062000c365762000c3662003db7565b60209081029190910181019190915260408051600061016082018181526101808301845282528184018690528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152855160c0830152600160e0830181905261010083018290526101208301819052835194850184528185526101408301949094529151909290839062000cd49062003d93565b62000ce192919062003f18565b604051809103906000f08015801562000cfe573d6000803e3d6000fd5b5060435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b15801562000d5757600080fd5b505af115801562000d6c573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000db357600080fd5b505af115801562000dc8573d6000803e3d6000fd5b505060445460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b15801562000e2357600080fd5b505af115801562000e38573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316631939666560e21b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb3935062000e9492016200403a565b600060405180830381600087803b15801562000eaf57600080fd5b505af115801562000ec4573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000f0b57600080fd5b505af115801562000f20573d6000803e3d6000fd5b505050505050505050565b6040805160018082528183019092526000916020808301908036833701905050905066b1a2bc2ec500008160008151811062000f6b5762000f6b62003db7565b602090810291909101810191909152604080516000610160820181815261018083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a083015260c0820181905260e082018190526101008201819052600161012083018190528351948501845281855261014083019490945291519092908390620010119062003d93565b6200101e92919062003f18565b604051809103906000f0801580156200103b573d6000803e3d6000fd5b506043546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b1580156200109457600080fd5b505af1158015620010a9573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316631e74b6b760e11b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb393506200110592016200403a565b600060405180830381600087803b1580156200112057600080fd5b505af115801562001135573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200117c57600080fd5b505af115801562001191573d6000803e3d6000fd5b5050505050505050565b6000620011a762002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620011ff57600080fd5b505af115801562001214573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200125b57600080fd5b505af115801562001270573d6000803e3d6000fd5b50600093506001925062001282915050565b604051908082528060200260200182016040528015620012ac578160200160208202803683370190505b5090507fffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac6860601c81600081518110620012e957620012e962003db7565b6001600160a01b0392831660209182029290920101526046546040516303223eab60e11b815291166004820152600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b1580156200134b57600080fd5b505af115801562001360573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166379c6621560e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb39350620013bc92016200403a565b600060405180830381600087803b158015620013d757600080fd5b505af1158015620013ec573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca791506200141e90849060040162003dcd565b600060405180830381600087803b1580156200143957600080fd5b505af11580156200144e573d6000803e3d6000fd5b505050505050565b60006200146262002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620014ba57600080fd5b505af1158015620014cf573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200151657600080fd5b505af11580156200152b573d6000803e3d6000fd5b5050505050806001600160a01b0316632bb795486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200156f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001595919062003e1c565b600114620015a757620015a762003e36565b60445460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620015fc57600080fd5b505af115801562001611573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f16706f05b59d3b200006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200165957600080fd5b505af11580156200166e573d6000803e3d6000fd5b5050505050806001600160a01b0316632bb795486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620016b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016d8919062003e1c565b60021462000b935762000b9362003e36565b6000620016f662002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b1580156200174e57600080fd5b505af115801562001763573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb39350620017bf92016200403a565b600060405180830381600087803b158015620017da57600080fd5b505af1158015620017ef573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f1668e1bc9bf0400006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200143957600080fd5b6040805160018082528183019092526000916020808301908036833701905050905066b1a2bc2ec500008160008151811062001876576200187662003db7565b602090810291909101810191909152604080516000610160820181815261018083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152606460c083015260e082018190526101008201819052600161012083015282519384018352808452610140820193909352604354825163ca669fa760e01b81526001600160a01b03909116600482015291519092600080516020620062c28339815191529263ca669fa7926024808301939282900301818387803b1580156200195f57600080fd5b505af115801562001974573d6000803e3d6000fd5b50505050600066b1a2bc2ec50000600183604051620019939062003d93565b620019a092919062003f18565b6040518091039082f0905080158015620019be573d6000803e3d6000fd5b509050806001600160a01b0316632bb795486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001a00573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a26919062003e1c565b60011462001a385762001a3862003e36565b505050565b600062001a4962002005565b6043546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b15801562001aa157600080fd5b505af115801562001ab6573d6000803e3d6000fd5b50600092506001915062001ac79050565b60405190808252806020026020018201604052801562001af1578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062001b185762001b1862003db7565b6001600160a01b0390921660209283029190910182015260408051600480825260248201835292810180516001600160e01b031663bcdc52d960e01b179052905163f28dceb360e01b8152600080516020620062c28339815191529263f28dceb39262001b88929091016200403a565b600060405180830381600087803b15801562001ba357600080fd5b505af115801562001bb8573d6000803e3d6000fd5b5050604051637c6fe70b60e01b81526001600160a01b0385169250637c6fe70b91506200141e90849060040162003dcd565b600062001bf662002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b15801562001c4e57600080fd5b505af115801562001c63573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562001caa57600080fd5b505af115801562001cbf573d6000803e3d6000fd5b50506040516372eb5f8160e11b81526213c6806004820152600080516020620062c2833981519152935063e5d6bf0292506024019050600060405180830381600087803b15801562001d1057600080fd5b505af115801562001d25573d6000803e3d6000fd5b50600092506001915062001d369050565b60405190808252806020026020018201604052801562001d60578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062001d875762001d8762003db7565b6001600160a01b0392831660209182029290920101526046546040516303223eab60e11b815291166004820152600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b15801562001de957600080fd5b505af115801562001dfe573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb39350620013bc92016200403a565b600062001e6662002005565b6043546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b15801562001ebe57600080fd5b505af115801562001ed3573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562001f1a57600080fd5b505af115801562001f2f573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316635fdadce760e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152955063f28dceb3945062001f8e93509091016200403a565b600060405180830381600087803b15801562001fa957600080fd5b505af115801562001fbe573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200143957600080fd5b60408051600180825281830190925260009182919060208083019080368337505060465482519293506001600160a01b0316918391506000906200204d576200204d62003db7565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090507f69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d2360601c81600081518110620020c457620020c462003db7565b6001600160a01b0392909216602092830291909101820152604080516002808252606082018352600093919290918301908036833701905050905066b1a2bc2ec50000816000815181106200211d576200211d62003db7565b6020026020010181815250506706f05b59d3b200008160018151811062002148576200214862003db7565b6020026020010181815250506000604051806101600160405280858152602001600067ffffffffffffffff81111562002185576200218562003da1565b604051908082528060200260200182016040528015620021af578160200160208202803683370190505b50815260208082018690526040805160008082529281018252920191905081526020018381526020016212750081526020016064815260200160001515815260200160001515815260200160011515815260200160405180602001604052806000815250815250905060006001826040516200222b9062003d93565b6200223892919062003f18565b604051809103906000f08015801562002255573d6000803e3d6000fd5b509695505050505050565b60006200226c62002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620022c457600080fd5b505af1158015620022d9573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200232057600080fd5b505af115801562002335573d6000803e3d6000fd5b505060465460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200239057600080fd5b505af1158015620023a5573d6000803e3d6000fd5b506000925060019150620023b69050565b604051908082528060200260200182016040528015620023e0578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062002407576200240762003db7565b6001600160a01b03928316602091820292909201015260405163b468aca760e01b81529083169063b468aca7906200244490849060040162003dcd565b600060405180830381600087803b1580156200245f57600080fd5b505af115801562002474573d6000803e3d6000fd5b505060445460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152925063ca669fa79150602401600060405180830381600087803b158015620024cd57600080fd5b505af1158015620024e2573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166304fb334d60e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb3935062001b8892016200403a565b60006200254a62002005565b6040516372eb5f8160e11b81526213c6806004820152909150600080516020620062c28339815191529063e5d6bf0290602401600060405180830381600087803b1580156200259857600080fd5b505af1158015620025ad573d6000803e3d6000fd5b50506045546040516303223eab60e11b81526001600160a01b039091166004820152600080516020620062c283398151915292506306447d569150602401600060405180830381600087803b1580156200260657600080fd5b505af11580156200261b573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb393506200267792016200403a565b600060405180830381600087803b1580156200269257600080fd5b505af1158015620026a7573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200143957600080fd5b6000620026fa62002005565b6046546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b1580156200275257600080fd5b505af115801562002767573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b031663066a900960e21b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb39350620027c392016200403a565b600060405180830381600087803b158015620027de57600080fd5b505af1158015620027f3573d6000803e3d6000fd5b50505050806001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200283357600080fd5b505af115801562002848573d6000803e3d6000fd5b5050505050565b60006200285b62002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620028b357600080fd5b505af1158015620028c8573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200290f57600080fd5b505af115801562002924573d6000803e3d6000fd5b505060465460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200297f57600080fd5b505af115801562002994573d6000803e3d6000fd5b506000925060019150620029a59050565b604051908082528060200260200182016040528015620029cf578160200160208202803683370190505b5060435481519192506001600160a01b0316908290600090620029f657620029f662003db7565b6001600160a01b03928316602091820292909201015260405163b468aca760e01b81529083169063b468aca79062002a3390849060040162003dcd565b600060405180830381600087803b15801562002a4e57600080fd5b505af115801562002a63573d6000803e3d6000fd5b505060435460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152925063ca669fa79150602401600060405180830381600087803b15801562002abc57600080fd5b505af115801562002ad1573d6000803e3d6000fd5b5050604051637c6fe70b60e01b81526001600160a01b0385169250637c6fe70b9150620008b290849060040162003dcd565b600062002b0f62002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b15801562002b6757600080fd5b505af115801562002b7c573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562002bc357600080fd5b505af115801562002bd8573d6000803e3d6000fd5b506000935083925062002be9915050565b60405190808252806020026020018201604052801562002c13578160200160208202803683370190505b506046546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b15801562002c6c57600080fd5b505af115801562002c81573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca7915062002cb390849060040162003dcd565b600060405180830381600087803b15801562002cce57600080fd5b505af115801562002ce3573d6000803e3d6000fd5b50505050816001600160a01b031663960fe94c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002d26573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d4c919062003e1c565b156200095d576200095d62003e36565b600754600090610100900460ff161562002d7f5750600754610100900460ff1690565b6000600080516020620062c28339815191523b1562002e845760408051600080516020620062c2833981519152602082018190526519985a5b195960d21b8284015282518083038401815260608301909352600092909162002e06917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162004056565b60408051601f198184030181529082905262002e229162004089565b6000604051808303816000865af19150503d806000811462002e61576040519150601f19603f3d011682016040523d82523d6000602084013e62002e66565b606091505b509150508080602001905181019062002e809190620040a7565b9150505b919050565b600062002e9562002005565b6040516372eb5f8160e11b81526213c6806004820152909150600080516020620062c28339815191529063e5d6bf0290602401600060405180830381600087803b15801562002ee357600080fd5b505af115801562002ef8573d6000803e3d6000fd5b50506043546040516303223eab60e11b81526001600160a01b039091166004820152600080516020620062c283398151915292506306447d569150602401600060405180830381600087803b15801562002f5157600080fd5b505af115801562002f66573d6000803e3d6000fd5b50505050806001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002fa657600080fd5b505af115801562002fbb573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166376e5413b60e11b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb39350620027c392016200403a565b60006200302362002005565b6040516372eb5f8160e11b81526213c6806004820152909150600080516020620062c28339815191529063e5d6bf0290602401600060405180830381600087803b1580156200307157600080fd5b505af115801562003086573d6000803e3d6000fd5b50506043546040516303223eab60e11b81526001600160a01b039091166004820152600080516020620062c283398151915292506306447d569150602401600060405180830381600087803b158015620030df57600080fd5b505af1158015620030f4573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb3935062001f8e92016200403a565b60006200315c62002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620031b457600080fd5b505af1158015620031c9573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200321057600080fd5b505af115801562003225573d6000803e3d6000fd5b505060445460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200328057600080fd5b505af115801562003295573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620032dc57600080fd5b505af1158015620032f1573d6000803e3d6000fd5b505060455460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200334c57600080fd5b505af115801562003361573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620033a857600080fd5b505af1158015620033bd573d6000803e3d6000fd5b505050505062003416816001600160a01b031631670214e8348c4f00006040518060400160405280601981526020017f62616c616e6365206973206e6f7420302e31352065746865720000000000000081525062003b1e565b60408051600180825281830190925260009160208083019080368337505060435482519293506001600160a01b0316918391506000906200345b576200345b62003db7565b6001600160a01b03928316602091820292909201015260465460405163ca669fa760e01b815291166004820152600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620034bd57600080fd5b505af1158015620034d2573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca791506200350490849060040162003dcd565b600060405180830381600087803b1580156200351f57600080fd5b505af115801562003534573d6000803e3d6000fd5b505060465460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152925063ca669fa79150602401600060405180830381600087803b1580156200358d57600080fd5b505af1158015620035a2573d6000803e3d6000fd5b5050604051637c6fe70b60e01b81526001600160a01b0385169250637c6fe70b9150620035d490849060040162003dcd565b600060405180830381600087803b158015620035ef57600080fd5b505af115801562003604573d6000803e3d6000fd5b505050506200365c826001600160a01b03163167016345785d8a00006040518060400160405280601881526020017f62616c616e6365206973206e6f7420302e31206574686572000000000000000081525062003b1e565b6040516372eb5f8160e11b81526213c6806004820152600080516020620062c28339815191529063e5d6bf0290602401600060405180830381600087803b158015620036a757600080fd5b505af1158015620036bc573d6000803e3d6000fd5b50506046546040516303223eab60e11b81526001600160a01b039091166004820152600080516020620062c283398151915292506306447d569150602401600060405180830381600087803b1580156200371557600080fd5b505af11580156200372a573d6000803e3d6000fd5b50505050816001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200376a57600080fd5b505af11580156200377f573d6000803e3d6000fd5b505050506200095d826001600160a01b0316316000604051806040016040528060168152602001753130b630b731b29034b9903737ba10181032ba3432b960511b81525062003b1e565b6040805160018082528183019092526000916020808301908036833701905050905067016345785d8a0000816000815181106200380a576200380a62003db7565b602090810291909101810191909152604080516000610160820181815261018083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152606460c083015260e082018190526101008201819052600161012083015282519384018352808452610140820193909352604354825163ca669fa760e01b81526001600160a01b03909116600482015291519092600080516020620062c28339815191529263ca669fa7926024808301939282900301818387803b158015620038f357600080fd5b505af115801562003908573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb393506200396492016200403a565b600060405180830381600087803b1580156200397f57600080fd5b505af115801562003994573d6000803e3d6000fd5b505050506706f05b59d3b20000600182604051620039b29062003d93565b620039bf92919062003f18565b6040518091039082f0905080158015620039dd573d6000803e3d6000fd5b505060435460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b15801562003a3457600080fd5b505af115801562003a49573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb3935062003aa592016200403a565b600060405180830381600087803b15801562003ac057600080fd5b505af115801562003ad5573d6000803e3d6000fd5b50505050670214e8348c4f000060018260405162003af39062003d93565b62003b0092919062003f18565b6040518091039082f0905080158015620006c8573d6000803e3d6000fd5b81831462001a38577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838160405162003b579190620040cb565b60405180910390a162001a3883838082146200095d577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162003bd89060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808115e1c1958dd195960b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a8183015269080808081058dd1d585b60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a16200095d600080516020620062c28339815191523b1562003d825760408051600080516020620062c2833981519152602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262003d1d929160200162004056565b60408051601f198184030181529082905262003d399162004089565b6000604051808303816000865af19150503d806000811462003d78576040519150601f19603f3d011682016040523d82523d6000602084013e62003d7d565b606091505b505050505b6007805461ff001916610100179055565b6121c580620040fd83390190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101562003e105783516001600160a01b03168352928401929184019160010162003de9565b50909695505050505050565b60006020828403121562003e2f57600080fd5b5051919050565b634e487b7160e01b600052600160045260246000fd5b600081518084526020808501945080840160005b8381101562003e875781516001600160a01b03168752958201959082019060010162003e60565b509495945050505050565b600081518084526020808501945080840160005b8381101562003e875781518752958201959082019060010162003ea6565b60005b8381101562003ee157818101518382015260200162003ec7565b50506000910152565b6000815180845262003f0481602086016020860162003ec4565b601f01601f19169290920160200192915050565b828152604060208201526000825161016080604085015262003f3f6101a085018362003e4c565b91506020850151603f198086850301606087015262003f5f848362003e4c565b9350604087015191508086850301608087015262003f7e848362003e4c565b935060608701519150808685030160a087015262003f9d848362003e4c565b935060808701519150808685030160c087015262003fbc848362003e92565b935060a087015160e087015260c08701519150610100828188015260e0880151925061012062003fef8189018515159052565b90880151925061014090620040078883018515159052565b880151151593870193909352918601518584039092016101808601525062004030828262003eea565b9695505050505050565b6020815260006200404f602083018462003eea565b9392505050565b6001600160e01b03198316815281516000906200407b81600485016020870162003ec4565b919091016004019392505050565b600082516200409d81846020870162003ec4565b9190910192915050565b600060208284031215620040ba57600080fd5b815180151581146200404f57600080fd5b60408152600560408201526422b93937b960d91b60608201526080602082015260006200404f608083018462003eea56fe6080604052604051620021c5380380620021c5833981016040819052620000269162000812565b60008281555b8151518110156200009d5760016002600084600001518481518110620000565762000056620009a8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200009481620009d4565b9150506200002c565b5060005b816060015151811015620001735760016003600084606001518481518110620000ce57620000ce620009a8565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550600160026000846060015184815181106200012c576200012c620009a8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200016a81620009d4565b915050620000a1565b508060e0015115620001f75760005b816020015151811015620001f557600180600084602001518481518110620001ae57620001ae620009a8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620001ec81620009d4565b91505062000182565b505b60005b8160800151518110156200026a5760016004600084608001518481518110620002275762000227620009a8565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806200026190620009d4565b915050620001fa565b5060408101518051620002869160059160209091019062000567565b5060a081015160065560c0810151600755610100808201516008805461012085015160e086015162ffff001990921693151590940262ff000019169290921762010000931515939093029290921760ff1916901515179055610140810151600990620002f3908262000a7f565b50306000908152600260205260409020805460ff191660011790556006546200031d904262000b4b565b600b556000600c819055600d819055600e55600f805461ffff1916905534156200034b576200034b62000353565b505062000b67565b60085460ff1680156200037657503360009081526001602052604090205460ff16155b156200039557604051631939666560e21b815260040160405180910390fd5b600754600c5410620003ba57604051631e74b6b760e11b815260040160405180910390fd5b33600090815260016020526040902054610100900460ff1615620003f157604051635fdadce760e01b815260040160405180910390fd5b600b5442111562000415576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526004602052604090205460ff166200044657604051630be5378760e21b815260040160405180910390fd5b6040805160a08101825260018082526020808301828152600084860181815260608601828152346080880190815233808552958790529783208751815495519351925161ffff1990961690151561ff00191617610100931515939093029290921763ffff00001916620100009115159190910263ff000000191617630100000093151593909302929092178255945190830155600a8054928301815584527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a890910180546001600160a01b0319169091179055600c805491926200052a83620009d4565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a250565b828054828255906000526020600020908101928215620005bf579160200282015b82811115620005bf57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000588565b50620005cd929150620005d1565b5090565b5b80821115620005cd5760008155600101620005d2565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715620006245762000624620005e8565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620006555762000655620005e8565b604052919050565b60006001600160401b03821115620006795762000679620005e8565b5060051b60200190565b600082601f8301126200069557600080fd5b81516020620006ae620006a8836200065d565b6200062a565b82815260059290921b84018101918181019086841115620006ce57600080fd5b8286015b84811015620007025780516001600160a01b0381168114620006f45760008081fd5b8352918301918301620006d2565b509695505050505050565b600082601f8301126200071f57600080fd5b8151602062000732620006a8836200065d565b82815260059290921b840181019181810190868411156200075257600080fd5b8286015b8481101562000702578051835291830191830162000756565b805180151581146200078057600080fd5b919050565b600082601f8301126200079757600080fd5b81516001600160401b03811115620007b357620007b3620005e8565b6020620007c9601f8301601f191682016200062a565b8281528582848701011115620007de57600080fd5b60005b83811015620007fe578581018301518282018401528201620007e1565b506000928101909101919091529392505050565b600080604083850312156200082657600080fd5b825160208401519092506001600160401b03808211156200084657600080fd5b9084019061016082870312156200085c57600080fd5b62000866620005fe565b8251828111156200087657600080fd5b620008848882860162000683565b8252506020830151828111156200089a57600080fd5b620008a88882860162000683565b602083015250604083015182811115620008c157600080fd5b620008cf8882860162000683565b604083015250606083015182811115620008e857600080fd5b620008f68882860162000683565b6060830152506080830151828111156200090f57600080fd5b6200091d888286016200070d565b60808301525060a083015160a082015260c083015160c08201526200094560e084016200076f565b60e08201526101006200095a8185016200076f565b908201526101206200096e8482016200076f565b9082015261014083810151838111156200098757600080fd5b620009958982870162000785565b8284015250508093505050509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620009e957620009e9620009be565b5060010190565b600181811c9082168062000a0557607f821691505b60208210810362000a2657634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a7a57600081815260208120601f850160051c8101602086101562000a555750805b601f850160051c820191505b8181101562000a765782815560010162000a61565b5050505b505050565b81516001600160401b0381111562000a9b5762000a9b620005e8565b62000ab38162000aac8454620009f0565b8462000a2c565b602080601f83116001811462000aeb576000841562000ad25750858301515b600019600386901b1c1916600185901b17855562000a76565b600085815260208120601f198616915b8281101562000b1c5788860151825594840194600190910190840162000afb565b508582101562000b3b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082018082111562000b615762000b61620009be565b92915050565b61164e8062000b776000396000f3fe6080604052600436106101d85760003560e01c80638f57727d11610102578063c5de488811610095578063dcfba2ba11610064578063dcfba2ba1461058d578063e09aee3b146105ad578063e548e3e7146105c7578063f3ac01b9146105f757600080fd5b8063c5de4888146104ef578063cebf058f14610528578063d50267ee14610548578063db231a4f1461057857600080fd5b80639b0f8a50116100d15780639b0f8a501461048f578063a07c765f146104a4578063aa546a9e146104b9578063b468aca7146104cf57600080fd5b80638f57727d14610411578063922fce95146104415780639340fd5114610460578063960fe94c1461047a57600080fd5b80633a4b66f11161017a57806377c936621161014957806377c93662146103aa5780637c6fe70b146103b25780637df7c74f146103d25780638b301e2b146103f157600080fd5b80633a4b66f11461032c578063450b3f501461033657806356539f391461037f5780635d758d391461039457600080fd5b80631f7180dd116101b65780631f7180dd146102c757806324924bf7146102eb5780632bb7954814610301578063362f04c01461031657600080fd5b806303ee438c146101dd57806309e69ede146102085780630e6fdaa11461028f575b600080fd5b3480156101e957600080fd5b506101f261060d565b6040516101ff919061121a565b60405180910390f35b34801561021457600080fd5b5061025f610223366004611284565b6001602081905260009182526040909120805491015460ff80831692610100810482169262010000820483169263010000009092049091169085565b6040805195151586529315156020860152911515928401929092529015156060830152608082015260a0016101ff565b34801561029b57600080fd5b506102af6102aa3660046112a6565b61069b565b6040516001600160a01b0390911681526020016101ff565b3480156102d357600080fd5b506102dd600d5481565b6040519081526020016101ff565b3480156102f757600080fd5b506102dd60075481565b34801561030d57600080fd5b50600c546102dd565b34801561032257600080fd5b506102dd600c5481565b6103346106c5565b005b34801561034257600080fd5b5061036f610351366004611284565b6001600160a01b031660009081526002602052604090205460ff1690565b60405190151581526020016101ff565b34801561038b57600080fd5b506000546102dd565b3480156103a057600080fd5b506102dd60065481565b6103346106cf565b3480156103be57600080fd5b506103346103cd36600461139c565b610740565b3480156103de57600080fd5b5060085461036f90610100900460ff1681565b3480156103fd57600080fd5b506102af61040c3660046112a6565b6108f5565b34801561041d57600080fd5b5061036f61042c366004611284565b60036020526000908152604090205460ff1681565b34801561044d57600080fd5b50600f5461036f90610100900460ff1681565b34801561046c57600080fd5b5060085461036f9060ff1681565b34801561048657600080fd5b50600d546102dd565b34801561049b57600080fd5b50600e546102dd565b3480156104b057600080fd5b50600b546102dd565b3480156104c557600080fd5b506102dd600e5481565b3480156104db57600080fd5b506103346104ea36600461139c565b610905565b3480156104fb57600080fd5b5061036f61050a366004611284565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561053457600080fd5b5060085461036f9062010000900460ff1681565b34801561055457600080fd5b5061036f6105633660046112a6565b60046020526000908152604090205460ff1681565b34801561058457600080fd5b50610334610a65565b34801561059957600080fd5b506103346105a83660046113d9565b610ad1565b3480156105b957600080fd5b50600f5461036f9060ff1681565b3480156105d357600080fd5b5061036f6105e2366004611284565b60026020526000908152604090205460ff1681565b34801561060357600080fd5b506102dd600b5481565b6009805461061a90611427565b80601f016020809104026020016040519081016040528092919081815260200182805461064690611427565b80156106935780601f1061066857610100808354040283529160200191610693565b820191906000526020600020905b81548152906001019060200180831161067657829003601f168201915b505050505081565b600a81815481106106ab57600080fd5b6000918252602090912001546001600160a01b0316905081565b6106cd610cbc565b565b600b544211156106f2576040516362ca2fcd60e01b815260040160405180910390fd5b34600e60008282546107049190611477565b909155505060405134815233907f74194cee4daf68c6858b41efe9729cf57988cee7f447442f39a1e2adafd4e0219060200160405180910390a2565b60008151600114801561077e5750336001600160a01b03168260008151811061076b5761076b611490565b60200260200101516001600160a01b0316145b3360009081526002602052604090205490915060ff1615801561079f575080155b156107bd576040516304fb334d60e01b815260040160405180910390fd5b60005b825181101561083b57600160008483815181106107df576107df611490565b6020908102919091018101516001600160a01b031682528101919091526040016000205462010000900460ff166108295760405163bcdc52d960e01b815260040160405180910390fd5b80610833816114a6565b9150506107c0565b5060005b82518110156108f057600083828151811061085c5761085c611490565b6020908102919091018101516001600160a01b03811660008181526001938490526040808220909401549351929450909183156108fc0291849190818181858888f193505050501580156108b4573d6000803e3d6000fd5b50506001600160a01b03166000908152600160205260409020805463ff00000019166301000000179055806108e8816114a6565b91505061083f565b505050565b600581815481106106ab57600080fd5b3360009081526002602052604090205460ff16610935576040516364f5dc8560e01b815260040160405180910390fd5b600b54421115610958576040516362ca2fcd60e01b815260040160405180910390fd5b60005b81518110156109d5576001600083838151811061097a5761097a611490565b6020908102919091018101516001600160a01b0316825281019190915260400160002054610100900460ff166109c3576040516379c6621560e01b815260040160405180910390fd5b806109cd816114a6565b91505061095b565b5060005b8151811015610a545760008282815181106109f6576109f6611490565b6020908102919091018101516001600160a01b0381166000908152600190925260408220805462ff0000191662010000179055600d80549193509091610a3b836114a6565b9190505550508080610a4c906114a6565b9150506109d9565b5050600f805460ff19166001179055565b600b544211610a875760405163066a900960e21b815260040160405180910390fd5b600f54610100900460ff1615610ab0576040516376e5413b60e11b815260040160405180910390fd5b610ab8610ec8565b610ac061104f565b600f805461ff001916610100179055565b6001600160a01b03821660009081526003602052604090205460ff16610b0a5760405163d67d8ec560e01b815260040160405180910390fd5b60405163091f613f60e11b8152829060009081906001600160a01b0384169063123ec27e90610b3d908790600401611503565b600060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b829190810190611516565b9150915060008167ffffffffffffffff811115610ba157610ba16112bf565b604051908082528060200260200182016040528015610bca578160200160208202803683370190505b5090506000805b8451811015610c5d57848181518110610bec57610bec611490565b602002602001015115610c4b57868181518110610c0b57610c0b611490565b6020026020010151838381518110610c2557610c25611490565b6001600160a01b039092166020928302919091019091015281610c47816114a6565b9250505b80610c55816114a6565b915050610bd1565b5060405163b468aca760e01b8152309063b468aca790610c81908590600401611503565b600060405180830381600087803b158015610c9b57600080fd5b505af1158015610caf573d6000803e3d6000fd5b5050505050505050505050565b60085460ff168015610cde57503360009081526001602052604090205460ff16155b15610cfc57604051631939666560e21b815260040160405180910390fd5b600754600c5410610d2057604051631e74b6b760e11b815260040160405180910390fd5b33600090815260016020526040902054610100900460ff1615610d5657604051635fdadce760e01b815260040160405180910390fd5b600b54421115610d79576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526004602052604090205460ff16610da957604051630be5378760e21b815260040160405180910390fd5b6040805160a08101825260018082526020808301828152600084860181815260608601828152346080880190815233808552958790529783208751815495519351925161ffff1990961690151561ff00191617610100931515939093029290921763ffff00001916620100009115159190910263ff000000191617630100000093151593909302929092178255945190830155600a8054928301815584527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a890910180546001600160a01b0319169091179055600c80549192610e8b836114a6565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a250565b600d54156106cd576000600d54600e54610ee291906115be565b90506000600d5467ffffffffffffffff811115610f0157610f016112bf565b604051908082528060200260200182016040528015610f2a578160200160208202803683370190505b5090506000805b600c5481101561100a576000600a8281548110610f5057610f50611490565b60009182526020808320909101546001600160a01b0316808352600190915260409091205490915060ff620100009091041615610ff7576040516001600160a01b0382169086156108fc029087906000818181858888f19350505050158015610fbd573d6000803e3d6000fd5b5080848481518110610fd157610fd1611490565b6001600160a01b039092166020928302919091019091015282610ff3816114a6565b9350505b5080611002816114a6565b915050610f31565b50600e5460405133917f2114d896257ce5a58e1c18ae0d1cb1bd56f2f18c8b5a78e4541b48f40883b5af9161104291869188906115e0565b60405180910390a2505050565b6000600d54600c546110619190611605565b11156106cd5760085460609062010000900460ff1680156110855750600f5460ff16155b156110ec57600a8054806020026020016040519081016040528092919081815260200182805480156110e057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110c2575b5050505050905061114a565b600580548060200260200160405190810160405280929190818152602001828054801561114257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611124575b505050505090505b600d54600c54479160009161115f9190611605565b61116990836115be565b905060005b83518110156111dc5783818151811061118957611189611490565b60200260200101516001600160a01b03166108fc839081150290604051600060405180830381858888f193505050501580156111c9573d6000803e3d6000fd5b50806111d4816114a6565b91505061116e565b50336001600160a01b03167f1a50eba3476dd09ccdbee500a30b43381479c55b92f8ea25850f819ec591a520848484604051611042939291906115e0565b600060208083528351808285015260005b818110156112475785810183015185820160400152820161122b565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461127f57600080fd5b919050565b60006020828403121561129657600080fd5b61129f82611268565b9392505050565b6000602082840312156112b857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156112fe576112fe6112bf565b604052919050565b600067ffffffffffffffff821115611320576113206112bf565b5060051b60200190565b600082601f83011261133b57600080fd5b8135602061135061134b83611306565b6112d5565b82815260059290921b8401810191818101908684111561136f57600080fd5b8286015b848110156113915761138481611268565b8352918301918301611373565b509695505050505050565b6000602082840312156113ae57600080fd5b813567ffffffffffffffff8111156113c557600080fd5b6113d18482850161132a565b949350505050565b600080604083850312156113ec57600080fd5b6113f583611268565b9150602083013567ffffffffffffffff81111561141157600080fd5b61141d8582860161132a565b9150509250929050565b600181811c9082168061143b57607f821691505b60208210810361145b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561148a5761148a611461565b92915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016114b8576114b8611461565b5060010190565b600081518084526020808501945080840160005b838110156114f85781516001600160a01b0316875295820195908201906001016114d3565b509495945050505050565b60208152600061129f60208301846114bf565b6000806040838503121561152957600080fd5b825167ffffffffffffffff81111561154057600080fd5b8301601f8101851361155157600080fd5b8051602061156161134b83611306565b82815260059290921b8301810191818101908884111561158057600080fd5b938201935b838510156115ad578451801515811461159e5760008081fd5b82529382019390820190611585565b969091015195979596505050505050565b6000826115db57634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006115f360608301866114bf565b60208301949094525060400152919050565b8181038181111561148a5761148a61146156fea2646970667358221220bcec80d60b8dc351e215be9dc9d2f35e7bc3fbdc8d73121b065d1db5e9e5da1564736f6c634300081100330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220ea04b42a4e0f04c4a2ead4ffe3babe71ad349c26aec9752e92552401997a2d5264736f6c6343000811003368747470733a2f2f646174612d736565642d7072656273632d312d73312e62696e616e63652e6f72673a3835343568747470733a2f2f6170692e617661782e6e6574776f726b2f6578742f62632f432f72706368747470733a2f2f676f65726c692e696e667572612e696f2f76332f383438343230373862303939343636333863303331353766383334303532313368747470733a2f2f676f65726c692d726f6c6c75702e617262697472756d2e696f2f72706368747470733a2f2f6170692e617661782d746573742e6e6574776f726b2f6578742f62632f432f72706368747470733a2f2f6273632d6461746173656564312e62696e616e63652e6f7267",
    "sourceMap": "179:13582:23:-:0;;;1572:26:0;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;650:14:5;:12;:14::i;:::-;620:44;;218:74:23;;;-1:-1:-1;;;;;;218:74:23;;;250:42;218:74;;;;298:84;;;;;339:43;298:84;;;388:66;;;;;416:38;388:66;;;460:72;;;;;;491:41;460:72;;;179:13582;;;;;;;;;;;;6228:3879:5;6269:7;6353:1679;;;;;;;;6381:46;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6381:46:5;;;;;;;6396:5;6381:46;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;6450:48;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6450:48:5;;;;;;;6467:5;6450:48;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;6521:54;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6521:54:5;;;;;;;6538:1;6521:54;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;6597:82;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6597:82:5;;;;;;;6613:1;6597:82;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;6870:53;;;;;;;;;;;;;;;;;-1:-1:-1;;;6870:53:5;;;;;;;;;;;6887:8;6353:1679;6870:53;;;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;;;;6947:52;;;;;;;;;;;;;;-1:-1:-1;;;6947:52:5;;;;;;6965:2;6947:52;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7029:58;;;;;;;;;;;;;;-1:-1:-1;;;7029:58:5;;;;;;7053:3;7029:58;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7114:59;;;;;;;;;;;;;;-1:-1:-1;;;7114:59:5;;;;;;7135:5;7114:59;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7206:75;;;;;;;;;;;;;;-1:-1:-1;;;7206:75:5;;;;;;;;;;7233:6;7206:75;;;;;;;;;;;;;;;6353:1679;;;;;7206:75;;;;;;;;;;;;;;;6353:1679;;7309:60;;;;;;;;;;;;;;;;;-1:-1:-1;;;7309:60:5;;;;;;;;;;;7331:5;6353:1679;7309:60;;;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;;;;7392:48;;;;;;;;;;;;;;-1:-1:-1;;;7392:48:5;;;;;;7409:3;7392:48;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7469:63;;;;;;;;;;;;;;-1:-1:-1;;;7469:63:5;;;;;;7492:5;7469:63;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7557:66;;;;;;;;;;;;;;-1:-1:-1;;;7557:66:5;;;;;;7576:5;7557:66;;;;;;;;;;;;;;;6353:1679;;;;;7557:66;;;;;;;;;;;;;6353:1679;;;;7652:75;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7652:75:5;;;;;;;7675:5;7652:75;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7756:63;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7756:63:5;;;;;;;7779:2;7756:63;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7855:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7885:2;7855:83;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;7965:56;;;;;;;;;;;;;;;-1:-1:-1;;;7965:56:5;;;;;;7986:3;6353:1679;7965:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;6341:1691;;;;:9;;:1691;:9;;;;:1691;;:9;:1691;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;8125:23;245:28;237:37;;-1:-1:-1;;;;;8152:10:5;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8152:12:5;;;;;;;;;;;;:::i;:::-;8124:40;;8179:9;8174:1909;8198:4;:11;8194:1;:15;8174:1909;;;8231:18;8251:20;8276:4;8281:1;8276:7;;;;;;;;:::i;:::-;;;;;;;8284:1;8276:10;;;;;;;:::i;:::-;;;;;8288:4;8293:1;8288:7;;;;;;;;:::i;:::-;;;;;;;8296:1;8288:10;;;;;;;:::i;:::-;;;;;8230:69;;;;8356:22;8364:4;8356:22;;;;;;;;;;;;;-1:-1:-1;;;8356:22:5;;;:7;;;:22;;:::i;:::-;8352:1683;;;8380:22;:31;8405:6;8380:22;:31;:::i;:::-;;8352:1683;;;8434:24;8442:4;8434:24;;;;;;;;;;;;;-1:-1:-1;;;8434:24:5;;;:7;;;:24;;:::i;:::-;8430:1605;;;8460:24;:33;8487:6;8460:24;:33;:::i;8430:1605::-;8516:24;8524:4;8516:24;;;;;;;;;;;;;-1:-1:-1;;;8516:24:5;;;:7;;;:24;;:::i;:::-;8512:1523;;;8542:24;:33;8569:6;8542:24;:33;:::i;8512:1523::-;8598:23;8606:4;8598:23;;;;;;;;;;;;;-1:-1:-1;;;8598:23:5;;;:7;;;:23;;:::i;:::-;8594:1441;;;8623:23;:32;8649:6;8623:23;:32;:::i;8594:1441::-;8678:24;8686:4;8678:24;;;;;;;;;;;;;-1:-1:-1;;;8678:24:5;;;:7;;;:24;;:::i;:::-;8674:1361;;;8704:24;:33;8731:6;8704:24;:33;:::i;8674:1361::-;8760:25;8768:4;8760:25;;;;;;;;;;;;;-1:-1:-1;;;8760:25:5;;;:7;;;:25;;:::i;:::-;8756:1279;;;8787:25;:34;8815:6;8787:25;:34;:::i;8756:1279::-;8844:51;8852:4;8844:51;;;;;;;;;;;;;-1:-1:-1;;;8844:51:5;;;;;;;;;;;;;;;;-1:-1:-1;;;8844:51:5;;;:7;;;:51;;:::i;:::-;8840:1195;;;8897:31;:40;8931:6;8897:31;:40;:::i;8840:1195::-;8960:45;8968:4;8960:45;;;;;;;;;;;;;-1:-1:-1;;;8960:45:5;;;;;;;;;;;;;;;;-1:-1:-1;;;8960:45:5;;;:7;;;:45;;:::i;:::-;8956:1079;;;9007:28;:37;9038:6;9007:28;:37;:::i;8956:1079::-;9067:59;9075:4;9067:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;;;:59;;:::i;:::-;9063:972;;;9128:34;:43;9165:6;9128:34;:43;:::i;9063:972::-;9194:47;9202:4;9194:47;;;;;;;;;;;;;-1:-1:-1;;;9194:47:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9194:47:5;;;:7;;;:47;;:::i;:::-;9190:845;;;9243:29;:38;9275:6;9243:29;:38;:::i;9190:845::-;9304:24;9312:4;9304:24;;;;;;;;;;;;;-1:-1:-1;;;9304:24:5;;;:7;;;:24;;:::i;:::-;9300:735;;;9330:24;:33;9357:6;9330:24;:33;:::i;9300:735::-;9386:49;9394:4;9386:49;;;;;;;;;;;;;-1:-1:-1;;;9386:49:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9386:49:5;;;:7;;;:49;;:::i;:::-;9382:653;;;9437:30;:39;9470:6;9437:30;:39;:::i;9382:653::-;9499:26;9507:4;9499:26;;;;;;;;;;;;;-1:-1:-1;;;9499:26:5;;;:7;;;:26;;:::i;:::-;9495:540;;;9527:26;:35;9556:6;9527:26;:35;:::i;9495:540::-;9585:49;9593:4;9585:49;;;;;;;;;;;;;-1:-1:-1;;;9585:49:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9585:49:5;;;:7;;;:49;;:::i;:::-;9581:454;;;9636:30;:39;9669:6;9636:30;:39;:::i;9581:454::-;9698:51;9706:4;9698:51;;;;;;;;;;;;;-1:-1:-1;;;9698:51:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9698:51:5;;;:7;;;:51;;:::i;:::-;9694:341;;;9751:30;:39;9784:6;9751:30;:39;:::i;9694:341::-;9813:67;9821:4;9813:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;;;:67;;:::i;:::-;9809:226;;;9882:37;:46;9922:6;9882:37;:46;:::i;9809:226::-;9951:45;9959:4;9951:45;;;;;;;;;;;;;-1:-1:-1;;;9951:45:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9951:45:5;;;:7;;;:45;;:::i;:::-;9947:88;;;9998:28;:37;10029:6;9998:28;:37;:::i;:::-;;9947:88;8216:1867;;8211:3;;;;;:::i;:::-;;;;8174:1909;;;;10099:1;10092:8;;;6228:3879;:::o;10113:155::-;10186:4;10258:1;10247:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10237:24;;;;;;10230:1;10219:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10209:24;;;;;;:52;10202:59;;10113:155;;;;:::o;10274:240::-;10364:4;10448:1;10437:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10427:24;;;;;;10420:1;10409:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10399:24;;;;;;:52;:108;;;;10504:1;10493:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10483:24;;;;;;10476:1;10465:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10455:24;;;;;;:52;10399:108;10380:127;10274:240;-1:-1:-1;;;;10274:240:5:o;14:127:27:-;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:27;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:27;;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:27;;;2580:26;2531:89;-1:-1:-1;;1335:1:27;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:27;;;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:27;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:27;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:27:o;2735:251::-;2807:2;2801:9;;;2837:15;;-1:-1:-1;;;;;2867:34:27;;2903:22;;;2864:62;2861:88;;;2929:18;;:::i;:::-;2965:2;2958:22;2735:251;:::o;2991:275::-;3062:2;3056:9;3127:2;3108:13;;-1:-1:-1;;3104:27:27;3092:40;;-1:-1:-1;;;;;3147:34:27;;3183:22;;;3144:62;3141:88;;;3209:18;;:::i;:::-;3245:2;3238:22;2991:275;;-1:-1:-1;2991:275:27:o;3271:250::-;3356:1;3366:113;3380:6;3377:1;3374:13;3366:113;;;3456:11;;;3450:18;3437:11;;;3430:39;3402:2;3395:10;3366:113;;;-1:-1:-1;;3513:1:27;3495:16;;3488:27;3271:250::o;3526:2078::-;3654:6;3707:2;3695:9;3686:7;3682:23;3678:32;3675:52;;;3723:1;3720;3713:12;3675:52;3750:16;;-1:-1:-1;;;;;3815:14:27;;;3812:34;;;3842:1;3839;3832:12;3812:34;3880:6;3869:9;3865:22;3855:32;;3925:7;3918:4;3914:2;3910:13;3906:27;3896:55;;3947:1;3944;3937:12;3896:55;3976:2;3970:9;3998:2;3994;3991:10;3988:36;;;4004:18;;:::i;:::-;4044:36;4076:2;4071;4068:1;4064:10;4060:19;4044:36;:::i;:::-;4102:3;4126:2;4121:3;4114:15;4154:2;4149:3;4145:12;4138:19;;4205:2;4199;4196:1;4192:10;4188:2;4184:19;4180:28;4166:42;;4231:7;4223:6;4220:19;4217:39;;;4252:1;4249;4242:12;4217:39;4284:2;4280;4276:11;4296:1278;4312:6;4307:3;4304:15;4296:1278;;;4391:3;4385:10;4427:2;4414:11;4411:19;4408:39;;;4443:1;4440;4433:12;4408:39;4470:20;;4525:2;4517:11;;4513:25;-1:-1:-1;4503:53:27;;4552:1;4549;4542:12;4503:53;4582:22;;:::i;:::-;4630:5;4667:7;4662:2;4658;4654:11;4651:24;4648:44;;;4688:1;4685;4678:12;4648:44;4726:2;4722;4718:11;4742:759;4768:2;4764;4760:11;4753:5;4750:22;4742:759;;;4858:5;4852:12;4902:2;4887:13;4884:21;4881:41;;;4918:1;4915;4908:12;4881:41;4949:22;;5010:2;5002:11;;4998:25;-1:-1:-1;4988:53:27;;5037:1;5034;5027:12;4988:53;5082:2;5078;5074:11;5068:18;5113:2;5109;5106:10;5103:36;;;5119:18;;:::i;:::-;5169:53;5212:2;5193:13;;-1:-1:-1;;5189:27:27;5218:2;5185:36;5169:53;:::i;:::-;5253:2;5246:5;5239:17;5301:7;5296:2;5291;5287;5283:11;5279:20;5276:33;5273:53;;;5322:1;5319;5312:12;5273:53;5343:67;5407:2;5402;5395:5;5391:14;5386:2;5382;5378:11;5343:67;:::i;:::-;5427:20;;-1:-1:-1;;5484:2:27;5473:14;;;;4784;4742:759;;;-1:-1:-1;5514:18:27;;-1:-1:-1;;5561:2:27;5552:12;;;;4329;4296:1278;;;-1:-1:-1;5593:5:27;3526:2078;-1:-1:-1;;;;;;;3526:2078:27:o;5609:127::-;5670:10;5665:3;5661:20;5658:1;5651:31;5701:4;5698:1;5691:15;5725:4;5722:1;5715:15;5741:232;5780:3;5801:17;;;5798:140;;5860:10;5855:3;5851:20;5848:1;5841:31;5895:4;5892:1;5885:15;5923:4;5920:1;5913:15;5798:140;-1:-1:-1;5965:1:27;5954:13;;5741:232::o;5978:396::-;6127:2;6116:9;6109:21;6090:4;6159:6;6153:13;6202:6;6197:2;6186:9;6182:18;6175:34;6218:79;6290:6;6285:2;6274:9;6270:18;6265:2;6257:6;6253:15;6218:79;:::i;:::-;6358:2;6337:15;-1:-1:-1;;6333:29:27;6318:45;;;;6365:2;6314:54;;5978:396;-1:-1:-1;;5978:396:27:o;:::-;179:13582:23;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x60806040523480156200001157600080fd5b5060043610620001755760003560e01c80637b5340cd11620000d3578063ba414fa61162000086578063ba414fa6146200024d578063bff886511462000268578063e608f5bf1462000272578063e63bdc2c146200027c578063fa7626d41462000286578063fdb5d2db146200029457600080fd5b80637b5340cd14620001f45780637bcf8810146200021b5780637d28054b14620002255780638d61b56e146200022f5780638db81b751462000239578063ac6a4242146200024357600080fd5b80633a1143da116200012c5780633a1143da14620001b85780633a1a859414620001c25780634c50463214620001cc5780634f9f4a0714620001d657806351e7974814620001e0578063523a6ee814620001ea57600080fd5b80630a9254e4146200017a5780630bb3f8f114620001865780630d930ecd14620001905780631fc168ee146200019a578063281fef2f14620001a45780632f64752714620001ae575b600080fd5b620001846200029e565b005b62000184620006ce565b6200018462000961565b6200018462000b96565b6200018462000f2b565b620001846200119b565b6200018462001456565b62000184620016ea565b6200018462001836565b6200018462001a3d565b6200018462001bea565b6200018462001e5a565b620001fe62002005565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018462002260565b620001846200253e565b62000184620026ee565b620001846200284f565b6200018462002b03565b6200025762002d5c565b604051901515815260200162000212565b6200018462002e89565b6200018462003017565b6200018462003150565b600754620002579060ff1681565b62000184620037c9565b604354604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600b60448201526a1c185c9d1a58da5c185b9d60aa1b6064820152600080516020620062c28339815191529063c657c71890608401600060405180830381600087803b1580156200031457600080fd5b505af115801562000329573d6000803e3d6000fd5b505060448054604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600c918101919091526b3830b93a34b1b4b830b73a1960a11b6064820152600080516020620062c2833981519152925063c657c7189150608401600060405180830381600087803b158015620003a757600080fd5b505af1158015620003bc573d6000803e3d6000fd5b5050604554604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600760448201526639b837b739b7b960c91b6064820152600080516020620062c2833981519152925063c657c7189150608401600060405180830381600087803b1580156200043257600080fd5b505af115801562000447573d6000803e3d6000fd5b5050604654604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600a60448201526939bab832b93b34b9b7b960b11b6064820152600080516020620062c2833981519152925063c657c7189150608401600060405180830381600087803b158015620004c057600080fd5b505af1158015620004d5573d6000803e3d6000fd5b505060435460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d631000006024820152600080516020620062c2833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200053d57600080fd5b505af115801562000552573d6000803e3d6000fd5b50506044805460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d631000006024820152600080516020620062c2833981519152935063c88a5e6d925001600060405180830381600087803b158015620005b957600080fd5b505af1158015620005ce573d6000803e3d6000fd5b505060455460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d631000006024820152600080516020620062c2833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200063657600080fd5b505af11580156200064b573d6000803e3d6000fd5b505060465460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d631000006024820152600080516020620062c2833981519152925063c88a5e6d9150604401600060405180830381600087803b158015620006b357600080fd5b505af1158015620006c8573d6000803e3d6000fd5b50505050565b6000620006da62002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b1580156200073257600080fd5b505af115801562000747573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200078e57600080fd5b505af1158015620007a3573d6000803e3d6000fd5b505060465460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b158015620007fe57600080fd5b505af115801562000813573d6000803e3d6000fd5b506000925060019150620008249050565b6040519080825280602002602001820160405280156200084e578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062000875576200087562003db7565b6001600160a01b03928316602091820292909201015260405163b468aca760e01b81529083169063b468aca790620008b290849060040162003dcd565b600060405180830381600087803b158015620008cd57600080fd5b505af1158015620008e2573d6000803e3d6000fd5b50505050816001600160a01b031663960fe94c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000925573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200094b919062003e1c565b6001146200095d576200095d62003e36565b5050565b60006200096d62002005565b6045546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b158015620009c557600080fd5b505af1158015620009da573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000a2157600080fd5b505af115801562000a36573d6000803e3d6000fd5b5050505050806001600160a01b0316639b0f8a506040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a7a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aa0919062003e1c565b66b1a2bc2ec500001462000ab85762000ab862003e36565b806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000afb57600080fd5b505af115801562000b10573d6000803e3d6000fd5b5050505050806001600160a01b0316639b0f8a506040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b54573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b7a919062003e1c565b67016345785d8a00001462000b935762000b9362003e36565b50565b60408051600180825281830190925260009160208083019080368337505060435482519293506001600160a01b03169183915060009062000bdb5762000bdb62003db7565b6001600160a01b03929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905066b1a2bc2ec500008160008151811062000c365762000c3662003db7565b60209081029190910181019190915260408051600061016082018181526101808301845282528184018690528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152855160c0830152600160e0830181905261010083018290526101208301819052835194850184528185526101408301949094529151909290839062000cd49062003d93565b62000ce192919062003f18565b604051809103906000f08015801562000cfe573d6000803e3d6000fd5b5060435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b15801562000d5757600080fd5b505af115801562000d6c573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000db357600080fd5b505af115801562000dc8573d6000803e3d6000fd5b505060445460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b15801562000e2357600080fd5b505af115801562000e38573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316631939666560e21b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb3935062000e9492016200403a565b600060405180830381600087803b15801562000eaf57600080fd5b505af115801562000ec4573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000f0b57600080fd5b505af115801562000f20573d6000803e3d6000fd5b505050505050505050565b6040805160018082528183019092526000916020808301908036833701905050905066b1a2bc2ec500008160008151811062000f6b5762000f6b62003db7565b602090810291909101810191909152604080516000610160820181815261018083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a083015260c0820181905260e082018190526101008201819052600161012083018190528351948501845281855261014083019490945291519092908390620010119062003d93565b6200101e92919062003f18565b604051809103906000f0801580156200103b573d6000803e3d6000fd5b506043546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b1580156200109457600080fd5b505af1158015620010a9573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316631e74b6b760e11b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb393506200110592016200403a565b600060405180830381600087803b1580156200112057600080fd5b505af115801562001135573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200117c57600080fd5b505af115801562001191573d6000803e3d6000fd5b5050505050505050565b6000620011a762002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620011ff57600080fd5b505af115801562001214573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200125b57600080fd5b505af115801562001270573d6000803e3d6000fd5b50600093506001925062001282915050565b604051908082528060200260200182016040528015620012ac578160200160208202803683370190505b5090507fffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac6860601c81600081518110620012e957620012e962003db7565b6001600160a01b0392831660209182029290920101526046546040516303223eab60e11b815291166004820152600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b1580156200134b57600080fd5b505af115801562001360573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166379c6621560e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb39350620013bc92016200403a565b600060405180830381600087803b158015620013d757600080fd5b505af1158015620013ec573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca791506200141e90849060040162003dcd565b600060405180830381600087803b1580156200143957600080fd5b505af11580156200144e573d6000803e3d6000fd5b505050505050565b60006200146262002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620014ba57600080fd5b505af1158015620014cf573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200151657600080fd5b505af11580156200152b573d6000803e3d6000fd5b5050505050806001600160a01b0316632bb795486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200156f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001595919062003e1c565b600114620015a757620015a762003e36565b60445460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620015fc57600080fd5b505af115801562001611573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f16706f05b59d3b200006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200165957600080fd5b505af11580156200166e573d6000803e3d6000fd5b5050505050806001600160a01b0316632bb795486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620016b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016d8919062003e1c565b60021462000b935762000b9362003e36565b6000620016f662002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b1580156200174e57600080fd5b505af115801562001763573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb39350620017bf92016200403a565b600060405180830381600087803b158015620017da57600080fd5b505af1158015620017ef573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f1668e1bc9bf0400006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200143957600080fd5b6040805160018082528183019092526000916020808301908036833701905050905066b1a2bc2ec500008160008151811062001876576200187662003db7565b602090810291909101810191909152604080516000610160820181815261018083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152606460c083015260e082018190526101008201819052600161012083015282519384018352808452610140820193909352604354825163ca669fa760e01b81526001600160a01b03909116600482015291519092600080516020620062c28339815191529263ca669fa7926024808301939282900301818387803b1580156200195f57600080fd5b505af115801562001974573d6000803e3d6000fd5b50505050600066b1a2bc2ec50000600183604051620019939062003d93565b620019a092919062003f18565b6040518091039082f0905080158015620019be573d6000803e3d6000fd5b509050806001600160a01b0316632bb795486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001a00573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a26919062003e1c565b60011462001a385762001a3862003e36565b505050565b600062001a4962002005565b6043546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b15801562001aa157600080fd5b505af115801562001ab6573d6000803e3d6000fd5b50600092506001915062001ac79050565b60405190808252806020026020018201604052801562001af1578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062001b185762001b1862003db7565b6001600160a01b0390921660209283029190910182015260408051600480825260248201835292810180516001600160e01b031663bcdc52d960e01b179052905163f28dceb360e01b8152600080516020620062c28339815191529263f28dceb39262001b88929091016200403a565b600060405180830381600087803b15801562001ba357600080fd5b505af115801562001bb8573d6000803e3d6000fd5b5050604051637c6fe70b60e01b81526001600160a01b0385169250637c6fe70b91506200141e90849060040162003dcd565b600062001bf662002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b15801562001c4e57600080fd5b505af115801562001c63573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562001caa57600080fd5b505af115801562001cbf573d6000803e3d6000fd5b50506040516372eb5f8160e11b81526213c6806004820152600080516020620062c2833981519152935063e5d6bf0292506024019050600060405180830381600087803b15801562001d1057600080fd5b505af115801562001d25573d6000803e3d6000fd5b50600092506001915062001d369050565b60405190808252806020026020018201604052801562001d60578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062001d875762001d8762003db7565b6001600160a01b0392831660209182029290920101526046546040516303223eab60e11b815291166004820152600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b15801562001de957600080fd5b505af115801562001dfe573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb39350620013bc92016200403a565b600062001e6662002005565b6043546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b15801562001ebe57600080fd5b505af115801562001ed3573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562001f1a57600080fd5b505af115801562001f2f573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316635fdadce760e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152955063f28dceb3945062001f8e93509091016200403a565b600060405180830381600087803b15801562001fa957600080fd5b505af115801562001fbe573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200143957600080fd5b60408051600180825281830190925260009182919060208083019080368337505060465482519293506001600160a01b0316918391506000906200204d576200204d62003db7565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090507f69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d2360601c81600081518110620020c457620020c462003db7565b6001600160a01b0392909216602092830291909101820152604080516002808252606082018352600093919290918301908036833701905050905066b1a2bc2ec50000816000815181106200211d576200211d62003db7565b6020026020010181815250506706f05b59d3b200008160018151811062002148576200214862003db7565b6020026020010181815250506000604051806101600160405280858152602001600067ffffffffffffffff81111562002185576200218562003da1565b604051908082528060200260200182016040528015620021af578160200160208202803683370190505b50815260208082018690526040805160008082529281018252920191905081526020018381526020016212750081526020016064815260200160001515815260200160001515815260200160011515815260200160405180602001604052806000815250815250905060006001826040516200222b9062003d93565b6200223892919062003f18565b604051809103906000f08015801562002255573d6000803e3d6000fd5b509695505050505050565b60006200226c62002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620022c457600080fd5b505af1158015620022d9573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200232057600080fd5b505af115801562002335573d6000803e3d6000fd5b505060465460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200239057600080fd5b505af1158015620023a5573d6000803e3d6000fd5b506000925060019150620023b69050565b604051908082528060200260200182016040528015620023e0578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062002407576200240762003db7565b6001600160a01b03928316602091820292909201015260405163b468aca760e01b81529083169063b468aca7906200244490849060040162003dcd565b600060405180830381600087803b1580156200245f57600080fd5b505af115801562002474573d6000803e3d6000fd5b505060445460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152925063ca669fa79150602401600060405180830381600087803b158015620024cd57600080fd5b505af1158015620024e2573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166304fb334d60e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb3935062001b8892016200403a565b60006200254a62002005565b6040516372eb5f8160e11b81526213c6806004820152909150600080516020620062c28339815191529063e5d6bf0290602401600060405180830381600087803b1580156200259857600080fd5b505af1158015620025ad573d6000803e3d6000fd5b50506045546040516303223eab60e11b81526001600160a01b039091166004820152600080516020620062c283398151915292506306447d569150602401600060405180830381600087803b1580156200260657600080fd5b505af11580156200261b573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb393506200267792016200403a565b600060405180830381600087803b1580156200269257600080fd5b505af1158015620026a7573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200143957600080fd5b6000620026fa62002005565b6046546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b1580156200275257600080fd5b505af115801562002767573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b031663066a900960e21b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb39350620027c392016200403a565b600060405180830381600087803b158015620027de57600080fd5b505af1158015620027f3573d6000803e3d6000fd5b50505050806001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200283357600080fd5b505af115801562002848573d6000803e3d6000fd5b5050505050565b60006200285b62002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620028b357600080fd5b505af1158015620028c8573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200290f57600080fd5b505af115801562002924573d6000803e3d6000fd5b505060465460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200297f57600080fd5b505af115801562002994573d6000803e3d6000fd5b506000925060019150620029a59050565b604051908082528060200260200182016040528015620029cf578160200160208202803683370190505b5060435481519192506001600160a01b0316908290600090620029f657620029f662003db7565b6001600160a01b03928316602091820292909201015260405163b468aca760e01b81529083169063b468aca79062002a3390849060040162003dcd565b600060405180830381600087803b15801562002a4e57600080fd5b505af115801562002a63573d6000803e3d6000fd5b505060435460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152925063ca669fa79150602401600060405180830381600087803b15801562002abc57600080fd5b505af115801562002ad1573d6000803e3d6000fd5b5050604051637c6fe70b60e01b81526001600160a01b0385169250637c6fe70b9150620008b290849060040162003dcd565b600062002b0f62002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b15801562002b6757600080fd5b505af115801562002b7c573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562002bc357600080fd5b505af115801562002bd8573d6000803e3d6000fd5b506000935083925062002be9915050565b60405190808252806020026020018201604052801562002c13578160200160208202803683370190505b506046546040516303223eab60e11b81526001600160a01b039091166004820152909150600080516020620062c2833981519152906306447d5690602401600060405180830381600087803b15801562002c6c57600080fd5b505af115801562002c81573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca7915062002cb390849060040162003dcd565b600060405180830381600087803b15801562002cce57600080fd5b505af115801562002ce3573d6000803e3d6000fd5b50505050816001600160a01b031663960fe94c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002d26573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d4c919062003e1c565b156200095d576200095d62003e36565b600754600090610100900460ff161562002d7f5750600754610100900460ff1690565b6000600080516020620062c28339815191523b1562002e845760408051600080516020620062c2833981519152602082018190526519985a5b195960d21b8284015282518083038401815260608301909352600092909162002e06917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162004056565b60408051601f198184030181529082905262002e229162004089565b6000604051808303816000865af19150503d806000811462002e61576040519150601f19603f3d011682016040523d82523d6000602084013e62002e66565b606091505b509150508080602001905181019062002e809190620040a7565b9150505b919050565b600062002e9562002005565b6040516372eb5f8160e11b81526213c6806004820152909150600080516020620062c28339815191529063e5d6bf0290602401600060405180830381600087803b15801562002ee357600080fd5b505af115801562002ef8573d6000803e3d6000fd5b50506043546040516303223eab60e11b81526001600160a01b039091166004820152600080516020620062c283398151915292506306447d569150602401600060405180830381600087803b15801562002f5157600080fd5b505af115801562002f66573d6000803e3d6000fd5b50505050806001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002fa657600080fd5b505af115801562002fbb573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166376e5413b60e11b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb39350620027c392016200403a565b60006200302362002005565b6040516372eb5f8160e11b81526213c6806004820152909150600080516020620062c28339815191529063e5d6bf0290602401600060405180830381600087803b1580156200307157600080fd5b505af115801562003086573d6000803e3d6000fd5b50506043546040516303223eab60e11b81526001600160a01b039091166004820152600080516020620062c283398151915292506306447d569150602401600060405180830381600087803b158015620030df57600080fd5b505af1158015620030f4573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb3935062001f8e92016200403a565b60006200315c62002005565b60435460405163ca669fa760e01b81526001600160a01b039091166004820152909150600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620031b457600080fd5b505af1158015620031c9573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200321057600080fd5b505af115801562003225573d6000803e3d6000fd5b505060445460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200328057600080fd5b505af115801562003295573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620032dc57600080fd5b505af1158015620032f1573d6000803e3d6000fd5b505060455460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200334c57600080fd5b505af115801562003361573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620033a857600080fd5b505af1158015620033bd573d6000803e3d6000fd5b505050505062003416816001600160a01b031631670214e8348c4f00006040518060400160405280601981526020017f62616c616e6365206973206e6f7420302e31352065746865720000000000000081525062003b1e565b60408051600180825281830190925260009160208083019080368337505060435482519293506001600160a01b0316918391506000906200345b576200345b62003db7565b6001600160a01b03928316602091820292909201015260465460405163ca669fa760e01b815291166004820152600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b158015620034bd57600080fd5b505af1158015620034d2573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca791506200350490849060040162003dcd565b600060405180830381600087803b1580156200351f57600080fd5b505af115801562003534573d6000803e3d6000fd5b505060465460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c2833981519152925063ca669fa79150602401600060405180830381600087803b1580156200358d57600080fd5b505af1158015620035a2573d6000803e3d6000fd5b5050604051637c6fe70b60e01b81526001600160a01b0385169250637c6fe70b9150620035d490849060040162003dcd565b600060405180830381600087803b158015620035ef57600080fd5b505af115801562003604573d6000803e3d6000fd5b505050506200365c826001600160a01b03163167016345785d8a00006040518060400160405280601881526020017f62616c616e6365206973206e6f7420302e31206574686572000000000000000081525062003b1e565b6040516372eb5f8160e11b81526213c6806004820152600080516020620062c28339815191529063e5d6bf0290602401600060405180830381600087803b158015620036a757600080fd5b505af1158015620036bc573d6000803e3d6000fd5b50506046546040516303223eab60e11b81526001600160a01b039091166004820152600080516020620062c283398151915292506306447d569150602401600060405180830381600087803b1580156200371557600080fd5b505af11580156200372a573d6000803e3d6000fd5b50505050816001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200376a57600080fd5b505af11580156200377f573d6000803e3d6000fd5b505050506200095d826001600160a01b0316316000604051806040016040528060168152602001753130b630b731b29034b9903737ba10181032ba3432b960511b81525062003b1e565b6040805160018082528183019092526000916020808301908036833701905050905067016345785d8a0000816000815181106200380a576200380a62003db7565b602090810291909101810191909152604080516000610160820181815261018083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152606460c083015260e082018190526101008201819052600161012083015282519384018352808452610140820193909352604354825163ca669fa760e01b81526001600160a01b03909116600482015291519092600080516020620062c28339815191529263ca669fa7926024808301939282900301818387803b158015620038f357600080fd5b505af115801562003908573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb393506200396492016200403a565b600060405180830381600087803b1580156200397f57600080fd5b505af115801562003994573d6000803e3d6000fd5b505050506706f05b59d3b20000600182604051620039b29062003d93565b620039bf92919062003f18565b6040518091039082f0905080158015620039dd573d6000803e3d6000fd5b505060435460405163ca669fa760e01b81526001600160a01b039091166004820152600080516020620062c28339815191529063ca669fa790602401600060405180830381600087803b15801562003a3457600080fd5b505af115801562003a49573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b8152600080516020620062c2833981519152945063f28dceb3935062003aa592016200403a565b600060405180830381600087803b15801562003ac057600080fd5b505af115801562003ad5573d6000803e3d6000fd5b50505050670214e8348c4f000060018260405162003af39062003d93565b62003b0092919062003f18565b6040518091039082f0905080158015620006c8573d6000803e3d6000fd5b81831462001a38577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838160405162003b579190620040cb565b60405180910390a162001a3883838082146200095d577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162003bd89060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808115e1c1958dd195960b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a8183015269080808081058dd1d585b60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a16200095d600080516020620062c28339815191523b1562003d825760408051600080516020620062c2833981519152602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262003d1d929160200162004056565b60408051601f198184030181529082905262003d399162004089565b6000604051808303816000865af19150503d806000811462003d78576040519150601f19603f3d011682016040523d82523d6000602084013e62003d7d565b606091505b505050505b6007805461ff001916610100179055565b6121c580620040fd83390190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101562003e105783516001600160a01b03168352928401929184019160010162003de9565b50909695505050505050565b60006020828403121562003e2f57600080fd5b5051919050565b634e487b7160e01b600052600160045260246000fd5b600081518084526020808501945080840160005b8381101562003e875781516001600160a01b03168752958201959082019060010162003e60565b509495945050505050565b600081518084526020808501945080840160005b8381101562003e875781518752958201959082019060010162003ea6565b60005b8381101562003ee157818101518382015260200162003ec7565b50506000910152565b6000815180845262003f0481602086016020860162003ec4565b601f01601f19169290920160200192915050565b828152604060208201526000825161016080604085015262003f3f6101a085018362003e4c565b91506020850151603f198086850301606087015262003f5f848362003e4c565b9350604087015191508086850301608087015262003f7e848362003e4c565b935060608701519150808685030160a087015262003f9d848362003e4c565b935060808701519150808685030160c087015262003fbc848362003e92565b935060a087015160e087015260c08701519150610100828188015260e0880151925061012062003fef8189018515159052565b90880151925061014090620040078883018515159052565b880151151593870193909352918601518584039092016101808601525062004030828262003eea565b9695505050505050565b6020815260006200404f602083018462003eea565b9392505050565b6001600160e01b03198316815281516000906200407b81600485016020870162003ec4565b919091016004019392505050565b600082516200409d81846020870162003ec4565b9190910192915050565b600060208284031215620040ba57600080fd5b815180151581146200404f57600080fd5b60408152600560408201526422b93937b960d91b60608201526080602082015260006200404f608083018462003eea56fe6080604052604051620021c5380380620021c5833981016040819052620000269162000812565b60008281555b8151518110156200009d5760016002600084600001518481518110620000565762000056620009a8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200009481620009d4565b9150506200002c565b5060005b816060015151811015620001735760016003600084606001518481518110620000ce57620000ce620009a8565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550600160026000846060015184815181106200012c576200012c620009a8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200016a81620009d4565b915050620000a1565b508060e0015115620001f75760005b816020015151811015620001f557600180600084602001518481518110620001ae57620001ae620009a8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620001ec81620009d4565b91505062000182565b505b60005b8160800151518110156200026a5760016004600084608001518481518110620002275762000227620009a8565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806200026190620009d4565b915050620001fa565b5060408101518051620002869160059160209091019062000567565b5060a081015160065560c0810151600755610100808201516008805461012085015160e086015162ffff001990921693151590940262ff000019169290921762010000931515939093029290921760ff1916901515179055610140810151600990620002f3908262000a7f565b50306000908152600260205260409020805460ff191660011790556006546200031d904262000b4b565b600b556000600c819055600d819055600e55600f805461ffff1916905534156200034b576200034b62000353565b505062000b67565b60085460ff1680156200037657503360009081526001602052604090205460ff16155b156200039557604051631939666560e21b815260040160405180910390fd5b600754600c5410620003ba57604051631e74b6b760e11b815260040160405180910390fd5b33600090815260016020526040902054610100900460ff1615620003f157604051635fdadce760e01b815260040160405180910390fd5b600b5442111562000415576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526004602052604090205460ff166200044657604051630be5378760e21b815260040160405180910390fd5b6040805160a08101825260018082526020808301828152600084860181815260608601828152346080880190815233808552958790529783208751815495519351925161ffff1990961690151561ff00191617610100931515939093029290921763ffff00001916620100009115159190910263ff000000191617630100000093151593909302929092178255945190830155600a8054928301815584527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a890910180546001600160a01b0319169091179055600c805491926200052a83620009d4565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a250565b828054828255906000526020600020908101928215620005bf579160200282015b82811115620005bf57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000588565b50620005cd929150620005d1565b5090565b5b80821115620005cd5760008155600101620005d2565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715620006245762000624620005e8565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620006555762000655620005e8565b604052919050565b60006001600160401b03821115620006795762000679620005e8565b5060051b60200190565b600082601f8301126200069557600080fd5b81516020620006ae620006a8836200065d565b6200062a565b82815260059290921b84018101918181019086841115620006ce57600080fd5b8286015b84811015620007025780516001600160a01b0381168114620006f45760008081fd5b8352918301918301620006d2565b509695505050505050565b600082601f8301126200071f57600080fd5b8151602062000732620006a8836200065d565b82815260059290921b840181019181810190868411156200075257600080fd5b8286015b8481101562000702578051835291830191830162000756565b805180151581146200078057600080fd5b919050565b600082601f8301126200079757600080fd5b81516001600160401b03811115620007b357620007b3620005e8565b6020620007c9601f8301601f191682016200062a565b8281528582848701011115620007de57600080fd5b60005b83811015620007fe578581018301518282018401528201620007e1565b506000928101909101919091529392505050565b600080604083850312156200082657600080fd5b825160208401519092506001600160401b03808211156200084657600080fd5b9084019061016082870312156200085c57600080fd5b62000866620005fe565b8251828111156200087657600080fd5b620008848882860162000683565b8252506020830151828111156200089a57600080fd5b620008a88882860162000683565b602083015250604083015182811115620008c157600080fd5b620008cf8882860162000683565b604083015250606083015182811115620008e857600080fd5b620008f68882860162000683565b6060830152506080830151828111156200090f57600080fd5b6200091d888286016200070d565b60808301525060a083015160a082015260c083015160c08201526200094560e084016200076f565b60e08201526101006200095a8185016200076f565b908201526101206200096e8482016200076f565b9082015261014083810151838111156200098757600080fd5b620009958982870162000785565b8284015250508093505050509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620009e957620009e9620009be565b5060010190565b600181811c9082168062000a0557607f821691505b60208210810362000a2657634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a7a57600081815260208120601f850160051c8101602086101562000a555750805b601f850160051c820191505b8181101562000a765782815560010162000a61565b5050505b505050565b81516001600160401b0381111562000a9b5762000a9b620005e8565b62000ab38162000aac8454620009f0565b8462000a2c565b602080601f83116001811462000aeb576000841562000ad25750858301515b600019600386901b1c1916600185901b17855562000a76565b600085815260208120601f198616915b8281101562000b1c5788860151825594840194600190910190840162000afb565b508582101562000b3b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082018082111562000b615762000b61620009be565b92915050565b61164e8062000b776000396000f3fe6080604052600436106101d85760003560e01c80638f57727d11610102578063c5de488811610095578063dcfba2ba11610064578063dcfba2ba1461058d578063e09aee3b146105ad578063e548e3e7146105c7578063f3ac01b9146105f757600080fd5b8063c5de4888146104ef578063cebf058f14610528578063d50267ee14610548578063db231a4f1461057857600080fd5b80639b0f8a50116100d15780639b0f8a501461048f578063a07c765f146104a4578063aa546a9e146104b9578063b468aca7146104cf57600080fd5b80638f57727d14610411578063922fce95146104415780639340fd5114610460578063960fe94c1461047a57600080fd5b80633a4b66f11161017a57806377c936621161014957806377c93662146103aa5780637c6fe70b146103b25780637df7c74f146103d25780638b301e2b146103f157600080fd5b80633a4b66f11461032c578063450b3f501461033657806356539f391461037f5780635d758d391461039457600080fd5b80631f7180dd116101b65780631f7180dd146102c757806324924bf7146102eb5780632bb7954814610301578063362f04c01461031657600080fd5b806303ee438c146101dd57806309e69ede146102085780630e6fdaa11461028f575b600080fd5b3480156101e957600080fd5b506101f261060d565b6040516101ff919061121a565b60405180910390f35b34801561021457600080fd5b5061025f610223366004611284565b6001602081905260009182526040909120805491015460ff80831692610100810482169262010000820483169263010000009092049091169085565b6040805195151586529315156020860152911515928401929092529015156060830152608082015260a0016101ff565b34801561029b57600080fd5b506102af6102aa3660046112a6565b61069b565b6040516001600160a01b0390911681526020016101ff565b3480156102d357600080fd5b506102dd600d5481565b6040519081526020016101ff565b3480156102f757600080fd5b506102dd60075481565b34801561030d57600080fd5b50600c546102dd565b34801561032257600080fd5b506102dd600c5481565b6103346106c5565b005b34801561034257600080fd5b5061036f610351366004611284565b6001600160a01b031660009081526002602052604090205460ff1690565b60405190151581526020016101ff565b34801561038b57600080fd5b506000546102dd565b3480156103a057600080fd5b506102dd60065481565b6103346106cf565b3480156103be57600080fd5b506103346103cd36600461139c565b610740565b3480156103de57600080fd5b5060085461036f90610100900460ff1681565b3480156103fd57600080fd5b506102af61040c3660046112a6565b6108f5565b34801561041d57600080fd5b5061036f61042c366004611284565b60036020526000908152604090205460ff1681565b34801561044d57600080fd5b50600f5461036f90610100900460ff1681565b34801561046c57600080fd5b5060085461036f9060ff1681565b34801561048657600080fd5b50600d546102dd565b34801561049b57600080fd5b50600e546102dd565b3480156104b057600080fd5b50600b546102dd565b3480156104c557600080fd5b506102dd600e5481565b3480156104db57600080fd5b506103346104ea36600461139c565b610905565b3480156104fb57600080fd5b5061036f61050a366004611284565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561053457600080fd5b5060085461036f9062010000900460ff1681565b34801561055457600080fd5b5061036f6105633660046112a6565b60046020526000908152604090205460ff1681565b34801561058457600080fd5b50610334610a65565b34801561059957600080fd5b506103346105a83660046113d9565b610ad1565b3480156105b957600080fd5b50600f5461036f9060ff1681565b3480156105d357600080fd5b5061036f6105e2366004611284565b60026020526000908152604090205460ff1681565b34801561060357600080fd5b506102dd600b5481565b6009805461061a90611427565b80601f016020809104026020016040519081016040528092919081815260200182805461064690611427565b80156106935780601f1061066857610100808354040283529160200191610693565b820191906000526020600020905b81548152906001019060200180831161067657829003601f168201915b505050505081565b600a81815481106106ab57600080fd5b6000918252602090912001546001600160a01b0316905081565b6106cd610cbc565b565b600b544211156106f2576040516362ca2fcd60e01b815260040160405180910390fd5b34600e60008282546107049190611477565b909155505060405134815233907f74194cee4daf68c6858b41efe9729cf57988cee7f447442f39a1e2adafd4e0219060200160405180910390a2565b60008151600114801561077e5750336001600160a01b03168260008151811061076b5761076b611490565b60200260200101516001600160a01b0316145b3360009081526002602052604090205490915060ff1615801561079f575080155b156107bd576040516304fb334d60e01b815260040160405180910390fd5b60005b825181101561083b57600160008483815181106107df576107df611490565b6020908102919091018101516001600160a01b031682528101919091526040016000205462010000900460ff166108295760405163bcdc52d960e01b815260040160405180910390fd5b80610833816114a6565b9150506107c0565b5060005b82518110156108f057600083828151811061085c5761085c611490565b6020908102919091018101516001600160a01b03811660008181526001938490526040808220909401549351929450909183156108fc0291849190818181858888f193505050501580156108b4573d6000803e3d6000fd5b50506001600160a01b03166000908152600160205260409020805463ff00000019166301000000179055806108e8816114a6565b91505061083f565b505050565b600581815481106106ab57600080fd5b3360009081526002602052604090205460ff16610935576040516364f5dc8560e01b815260040160405180910390fd5b600b54421115610958576040516362ca2fcd60e01b815260040160405180910390fd5b60005b81518110156109d5576001600083838151811061097a5761097a611490565b6020908102919091018101516001600160a01b0316825281019190915260400160002054610100900460ff166109c3576040516379c6621560e01b815260040160405180910390fd5b806109cd816114a6565b91505061095b565b5060005b8151811015610a545760008282815181106109f6576109f6611490565b6020908102919091018101516001600160a01b0381166000908152600190925260408220805462ff0000191662010000179055600d80549193509091610a3b836114a6565b9190505550508080610a4c906114a6565b9150506109d9565b5050600f805460ff19166001179055565b600b544211610a875760405163066a900960e21b815260040160405180910390fd5b600f54610100900460ff1615610ab0576040516376e5413b60e11b815260040160405180910390fd5b610ab8610ec8565b610ac061104f565b600f805461ff001916610100179055565b6001600160a01b03821660009081526003602052604090205460ff16610b0a5760405163d67d8ec560e01b815260040160405180910390fd5b60405163091f613f60e11b8152829060009081906001600160a01b0384169063123ec27e90610b3d908790600401611503565b600060405180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b829190810190611516565b9150915060008167ffffffffffffffff811115610ba157610ba16112bf565b604051908082528060200260200182016040528015610bca578160200160208202803683370190505b5090506000805b8451811015610c5d57848181518110610bec57610bec611490565b602002602001015115610c4b57868181518110610c0b57610c0b611490565b6020026020010151838381518110610c2557610c25611490565b6001600160a01b039092166020928302919091019091015281610c47816114a6565b9250505b80610c55816114a6565b915050610bd1565b5060405163b468aca760e01b8152309063b468aca790610c81908590600401611503565b600060405180830381600087803b158015610c9b57600080fd5b505af1158015610caf573d6000803e3d6000fd5b5050505050505050505050565b60085460ff168015610cde57503360009081526001602052604090205460ff16155b15610cfc57604051631939666560e21b815260040160405180910390fd5b600754600c5410610d2057604051631e74b6b760e11b815260040160405180910390fd5b33600090815260016020526040902054610100900460ff1615610d5657604051635fdadce760e01b815260040160405180910390fd5b600b54421115610d79576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526004602052604090205460ff16610da957604051630be5378760e21b815260040160405180910390fd5b6040805160a08101825260018082526020808301828152600084860181815260608601828152346080880190815233808552958790529783208751815495519351925161ffff1990961690151561ff00191617610100931515939093029290921763ffff00001916620100009115159190910263ff000000191617630100000093151593909302929092178255945190830155600a8054928301815584527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a890910180546001600160a01b0319169091179055600c80549192610e8b836114a6565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a250565b600d54156106cd576000600d54600e54610ee291906115be565b90506000600d5467ffffffffffffffff811115610f0157610f016112bf565b604051908082528060200260200182016040528015610f2a578160200160208202803683370190505b5090506000805b600c5481101561100a576000600a8281548110610f5057610f50611490565b60009182526020808320909101546001600160a01b0316808352600190915260409091205490915060ff620100009091041615610ff7576040516001600160a01b0382169086156108fc029087906000818181858888f19350505050158015610fbd573d6000803e3d6000fd5b5080848481518110610fd157610fd1611490565b6001600160a01b039092166020928302919091019091015282610ff3816114a6565b9350505b5080611002816114a6565b915050610f31565b50600e5460405133917f2114d896257ce5a58e1c18ae0d1cb1bd56f2f18c8b5a78e4541b48f40883b5af9161104291869188906115e0565b60405180910390a2505050565b6000600d54600c546110619190611605565b11156106cd5760085460609062010000900460ff1680156110855750600f5460ff16155b156110ec57600a8054806020026020016040519081016040528092919081815260200182805480156110e057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110c2575b5050505050905061114a565b600580548060200260200160405190810160405280929190818152602001828054801561114257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611124575b505050505090505b600d54600c54479160009161115f9190611605565b61116990836115be565b905060005b83518110156111dc5783818151811061118957611189611490565b60200260200101516001600160a01b03166108fc839081150290604051600060405180830381858888f193505050501580156111c9573d6000803e3d6000fd5b50806111d4816114a6565b91505061116e565b50336001600160a01b03167f1a50eba3476dd09ccdbee500a30b43381479c55b92f8ea25850f819ec591a520848484604051611042939291906115e0565b600060208083528351808285015260005b818110156112475785810183015185820160400152820161122b565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461127f57600080fd5b919050565b60006020828403121561129657600080fd5b61129f82611268565b9392505050565b6000602082840312156112b857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156112fe576112fe6112bf565b604052919050565b600067ffffffffffffffff821115611320576113206112bf565b5060051b60200190565b600082601f83011261133b57600080fd5b8135602061135061134b83611306565b6112d5565b82815260059290921b8401810191818101908684111561136f57600080fd5b8286015b848110156113915761138481611268565b8352918301918301611373565b509695505050505050565b6000602082840312156113ae57600080fd5b813567ffffffffffffffff8111156113c557600080fd5b6113d18482850161132a565b949350505050565b600080604083850312156113ec57600080fd5b6113f583611268565b9150602083013567ffffffffffffffff81111561141157600080fd5b61141d8582860161132a565b9150509250929050565b600181811c9082168061143b57607f821691505b60208210810361145b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561148a5761148a611461565b92915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016114b8576114b8611461565b5060010190565b600081518084526020808501945080840160005b838110156114f85781516001600160a01b0316875295820195908201906001016114d3565b509495945050505050565b60208152600061129f60208301846114bf565b6000806040838503121561152957600080fd5b825167ffffffffffffffff81111561154057600080fd5b8301601f8101851361155157600080fd5b8051602061156161134b83611306565b82815260059290921b8301810191818101908884111561158057600080fd5b938201935b838510156115ad578451801515811461159e5760008081fd5b82529382019390820190611585565b969091015195979596505050505050565b6000826115db57634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006115f360608301866114bf565b60208301949094525060400152919050565b8181038181111561148a5761148a61146156fea2646970667358221220bcec80d60b8dc351e215be9dc9d2f35e7bc3fbdc8d73121b065d1db5e9e5da1564736f6c634300081100330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220ea04b42a4e0f04c4a2ead4ffe3babe71ad349c26aec9752e92552401997a2d5264736f6c63430008110033",
    "sourceMap": "179:13582:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:376;;;:::i;:::-;;5916:502;;;:::i;5155:392::-;;;:::i;3811:975::-;;;:::i;3014:791::-;;;:::i;7524:584::-;;;:::i;1907:382::-;;;:::i;2295:325::-;;;:::i;12084:730::-;;;:::i;6424:509::-;;;:::i;6939:579::-;;;:::i;2626:382::-;;;:::i;921:980::-;;;:::i;:::-;;;-1:-1:-1;;;;;199:32:27;;;181:51;;169:2;154:18;921:980:23;;;;;;;;9157:744;;;:::i;5553:357::-;;;:::i;11125:402::-;;;:::i;8568:583::-;;;:::i;8114:448::-;;;:::i;1819:584:0:-;;;:::i;:::-;;;504:14:27;;497:22;479:41;;467:2;452:18;1819:584:0;339:187:27;11533:545:23;;;:::i;4792:357::-;;;:::i;9907:1212::-;;;:::i;1572:26:0:-;;;;;;;;;12820:939:23;;;:::i;539:376::-;582:12;;573:37;;;-1:-1:-1;;;573:37:23;;-1:-1:-1;;;;;582:12:23;;;573:37;;;743:51:27;810:18;;;803:30;869:2;849:18;;;842:30;-1:-1:-1;;;888:18:27;;;881:41;-1:-1:-1;;;;;;;;;;;573:8:23;;;939:19:27;;573:37:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;629:13:23;;;620:39;;;-1:-1:-1;;;620:39:23;;-1:-1:-1;;;;;629:13:23;;;620:39;;;1181:51:27;1248:18;;;1241:30;1307:2;1287:18;;;1280:30;;;;-1:-1:-1;;;1326:18:27;;;1319:42;-1:-1:-1;;;;;;;;;;;620:8:23;-1:-1:-1;620:8:23;;-1:-1:-1;1378:19:27;;620:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;678:8:23;;669:29;;;-1:-1:-1;;;669:29:23;;-1:-1:-1;;;;;678:8:23;;;669:29;;;1620:51:27;1687:18;;;1680:30;1746:1;1726:18;;;1719:29;-1:-1:-1;;;1764:18:27;;;1757:37;-1:-1:-1;;;;;;;;;;;669:8:23;-1:-1:-1;669:8:23;;-1:-1:-1;1811:19:27;;669:29:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;717:11:23;;708:35;;;-1:-1:-1;;;708:35:23;;-1:-1:-1;;;;;717:11:23;;;708:35;;;2053:51:27;2120:18;;;2113:30;2179:2;2159:18;;;2152:30;-1:-1:-1;;;2198:18:27;;;2191:40;-1:-1:-1;;;;;;;;;;;708:8:23;-1:-1:-1;708:8:23;;-1:-1:-1;2248:19:27;;708:35:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;762:12:23;;754:32;;-1:-1:-1;;;754:32:23;;-1:-1:-1;;;;;762:12:23;;;754:32;;;2480:51:27;776:9:23;2547:18:27;;;2540:34;-1:-1:-1;;;;;;;;;;;754:7:23;-1:-1:-1;754:7:23;;-1:-1:-1;2453:18:27;;754:32:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;804:13:23;;;796:33;;-1:-1:-1;;;796:33:23;;-1:-1:-1;;;;;804:13:23;;;796:33;;;2480:51:27;819:9:23;2547:18:27;;;2540:34;-1:-1:-1;;;;;;;;;;;796:7:23;-1:-1:-1;796:7:23;;-1:-1:-1;2453:18:27;796:33:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;847:8:23;;839:28;;-1:-1:-1;;;839:28:23;;-1:-1:-1;;;;;847:8:23;;;839:28;;;2480:51:27;857:9:23;2547:18:27;;;2540:34;-1:-1:-1;;;;;;;;;;;839:7:23;-1:-1:-1;839:7:23;;-1:-1:-1;2453:18:27;;839:28:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;885:11:23;;877:31;;-1:-1:-1;;;877:31:23;;-1:-1:-1;;;;;885:11:23;;;877:31;;;2480:51:27;898:9:23;2547:18:27;;;2540:34;-1:-1:-1;;;;;;;;;;;877:7:23;-1:-1:-1;877:7:23;;-1:-1:-1;2453:18:27;;877:31:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:376::o;5916:502::-;5971:23;5997:43;:41;:43::i;:::-;6059:12;;6050:22;;-1:-1:-1;;;6050:22:23;;-1:-1:-1;;;;;6059:12:23;;;6050:22;;;181:51:27;5971:69:23;;-1:-1:-1;;;;;;;;;;;;6050:8:23;;;154:18:27;;6050:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6082:11;-1:-1:-1;;;;;6082:17:23;;6107:10;6082:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6139:11:23;;6130:21;;-1:-1:-1;;;6130:21:23;;-1:-1:-1;;;;;6139:11:23;;;6130:21;;;181:51:27;-1:-1:-1;;;;;;;;;;;6130:8:23;-1:-1:-1;6130:8:23;;-1:-1:-1;154:18:27;;;-1:-1:-1;6130:21:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6161:42:23;;-1:-1:-1;6220:1:23;;-1:-1:-1;6206:16:23;;-1:-1:-1;6206:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6206:16:23;-1:-1:-1;6263:12:23;;6232:28;;6161:61;;-1:-1:-1;;;;;;6263:12:23;;6161:61;;6263:12;;6232:28;;;;:::i;:::-;-1:-1:-1;;;;;6232:43:23;;;:28;;;;;;;;;:43;6285:61;;-1:-1:-1;;;6285:61:23;;:34;;;;;;:61;;6320:25;;6285:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6363:11;-1:-1:-1;;;;;6363:40:23;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6409:1;6363:47;6356:55;;;;:::i;:::-;5961:457;;5916:502::o;5155:392::-;5195:23;5221:43;:41;:43::i;:::-;5288:8;;5274:23;;-1:-1:-1;;;5274:23:23;;-1:-1:-1;;;;;5288:8:23;;;5274:23;;;181:51:27;5195:69:23;;-1:-1:-1;;;;;;;;;;;;5274:13:23;;;154:18:27;;5274:23:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5307:11;-1:-1:-1;;;;;5307:19:23;;5334:10;5307:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5364:11;-1:-1:-1;;;;;5364:38:23;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5408:10;5364:54;5357:62;;;;:::i;:::-;5429:11;-1:-1:-1;;;;;5429:19:23;;5456:10;5429:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5486:11;-1:-1:-1;;;;;5486:38:23;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5530:9;5486:53;5479:61;;;;:::i;:::-;5185:362;5155:392::o;3811:975::-;3904:16;;;3918:1;3904:16;;;;;;;;;3864:37;;3904:16;;;;;;;;;-1:-1:-1;;3956:12:23;;3930:23;;;;-1:-1:-1;;;;;;3956:12:23;;3930:23;;-1:-1:-1;3956:12:23;;3930:23;;;;:::i;:::-;-1:-1:-1;;;;;3930:38:23;;;;:23;;;;;;;;;;;:38;4011:16;;;4025:1;4011:16;;;;;;;;;3979:29;;4011:16;;;;;;;;;;;;-1:-1:-1;4011:16:23;3979:48;;4055:10;4037:12;4050:1;4037:15;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;;4118:314;;;-1:-1:-1;4118:314:23;;;4153:16;;;;;;;;4118:314;;;;;;;;4217:16;;;;;;;;;;4118:314;;;;4247:16;;;;;;;;;;4118:314;;;;;;;;;;4303:7;4118:314;;;;4324:27;;4118:314;;;;4365:4;4118:314;;;;;;;;;;;;-1:-1:-1;;;4118:314:23;;;;;;;;;;;;;;;;;;;;4469:30;;4118:314;;4365:4;4118:314;;4469:30;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4518:12:23;;4509:22;;-1:-1:-1;;;4509:22:23;;-1:-1:-1;;;;;4518:12:23;;;4509:22;;;181:51:27;4442:57:23;;-1:-1:-1;;;;;;;;;;;;4509:8:23;;;154:18:27;;4509:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4541:12;-1:-1:-1;;;;;4541:18:23;;4567:10;4541:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4599:13:23;;4590:23;;-1:-1:-1;;;4590:23:23;;-1:-1:-1;;;;;4599:13:23;;;4590:23;;;181:51:27;-1:-1:-1;;;;;;;;;;;4590:8:23;-1:-1:-1;4590:8:23;;-1:-1:-1;154:18:27;;;-1:-1:-1;4590:23:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4652:68:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4652:68:23;-1:-1:-1;;;4652:68:23;;;4623:107;;-1:-1:-1;;;4623:107:23;;-1:-1:-1;;;;;;;;;;;4623:15:23;-1:-1:-1;4623:15:23;;-1:-1:-1;4623:107:23;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4740:12;-1:-1:-1;;;;;4740:18:23;;4766:10;4740:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3854:932;;;;3811:975::o;3014:791::-;3106:16;;;3120:1;3106:16;;;;;;;;;3074:29;;3106:16;;;;;;;;;;;-1:-1:-1;3106:16:23;3074:48;;3150:10;3132:12;3145:1;3132:15;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;;3212:285;;;-1:-1:-1;3212:285:23;;;3247:16;;;;;;;;3212:285;;3277:16;;;;;;;;;;3212:285;;;;3307:16;;;;;;;;;;3212:285;;;;3337:16;;;;;;;;;;3212:285;;;;;;;;;;3393:7;3212:285;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3212:285:23;;;;;;;;;;;;;;;;;;;;3534:30;;3212:285;;;;;3534:30;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3588:12:23;;3574:27;;-1:-1:-1;;;3574:27:23;;-1:-1:-1;;;;;3588:12:23;;;3574:27;;;181:51:27;3507:57:23;;-1:-1:-1;;;;;;;;;;;;3574:13:23;;;154:18:27;;3574:27:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3640:99:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3640:99:23;-1:-1:-1;;;3640:99:23;;;3611:138;;-1:-1:-1;;;3611:138:23;;-1:-1:-1;;;;;;;;;;;3611:15:23;-1:-1:-1;3611:15:23;;-1:-1:-1;3611:138:23;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3759:12;-1:-1:-1;;;;;3759:18:23;;3785:10;3759:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3064:741;;;3014:791::o;7524:584::-;7582:23;7608:43;:41;:43::i;:::-;7670:12;;7661:22;;-1:-1:-1;;;7661:22:23;;-1:-1:-1;;;;;7670:12:23;;;7661:22;;;181:51:27;7582:69:23;;-1:-1:-1;;;;;;;;;;;;7661:8:23;;;154:18:27;;7661:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7693:11;-1:-1:-1;;;;;7693:17:23;;7718:10;7693:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7741:42:23;;-1:-1:-1;7800:1:23;;-1:-1:-1;7786:16:23;;-1:-1:-1;;7786:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7786:16:23;;7741:61;;7859:20;7843:38;;7812:25;7838:1;7812:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7812:69:23;;;:28;;;;;;;;;:69;7905:11;;7891:26;;-1:-1:-1;;;7891:26:23;;7905:11;;7891:26;;;181:51:27;-1:-1:-1;;;;;;;;;;;7891:13:23;;;154:18:27;;7891:26:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7956:64:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7956:64:23;-1:-1:-1;;;7956:64:23;;;7927:103;;-1:-1:-1;;;7927:103:23;;-1:-1:-1;;;;;;;;;;;7927:15:23;-1:-1:-1;7927:15:23;;-1:-1:-1;7927:103:23;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8040:61:23;;-1:-1:-1;;;8040:61:23;;-1:-1:-1;;;;;8040:34:23;;;-1:-1:-1;8040:34:23;;-1:-1:-1;8040:61:23;;8075:25;;8040:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7572:536;;7524:584::o;1907:382::-;1945:23;1971:43;:41;:43::i;:::-;2033:12;;2024:22;;-1:-1:-1;;;2024:22:23;;-1:-1:-1;;;;;2033:12:23;;;2024:22;;;181:51:27;1945:69:23;;-1:-1:-1;;;;;;;;;;;;2024:8:23;;;154:18:27;;2024:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2056:11;-1:-1:-1;;;;;2056:17:23;;2081:10;2056:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2111:11;-1:-1:-1;;;;;2111:29:23;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2146:1;2111:36;2104:44;;;;:::i;:::-;2167:13;;2158:23;;-1:-1:-1;;;2158:23:23;;-1:-1:-1;;;;;2167:13:23;;;2158:23;;;181:51:27;-1:-1:-1;;;;;;;;;;;2158:8:23;;;154:18:27;;2158:23:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2191:11;-1:-1:-1;;;;;2191:17:23;;2216:9;2191:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:11;-1:-1:-1;;;;;2245:29:23;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2280:1;2245:36;2238:44;;;;:::i;2295:325::-;2348:23;2374:43;:41;:43::i;:::-;2436:12;;2427:22;;-1:-1:-1;;;2427:22:23;;-1:-1:-1;;;;;2436:12:23;;;2427:22;;;181:51:27;2348:69:23;;-1:-1:-1;;;;;;;;;;;;2427:8:23;;;154:18:27;;2427:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2488:67:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2488:67:23;-1:-1:-1;;;2488:67:23;;;2459:106;;-1:-1:-1;;;2459:106:23;;-1:-1:-1;;;;;;;;;;;2459:15:23;-1:-1:-1;2459:15:23;;-1:-1:-1;2459:106:23;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2575:11;-1:-1:-1;;;;;2575:17:23;;2600:10;2575:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12084:730;12169:16;;;12183:1;12169:16;;;;;;;;;12137:29;;12169:16;;;;;;;;;;;-1:-1:-1;12169:16:23;12137:48;;12213:10;12195:12;12208:1;12195:15;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;;12282:287;;;-1:-1:-1;12282:287:23;;;12317:16;;;;;;;;12282:287;;12347:16;;;;;;;;;;12282:287;;;;12377:16;;;;;;;;;;12282:287;;;;12407:16;;;;;;;;;;12282:287;;;;;;;;;;12463:7;12282:287;;;;12484:3;12282:287;;;;;;;;;;;;;;;;;-1:-1:-1;;;12282:287:23;;;;;;;;;;;;;;;;;;12588:12;;12579:22;;-1:-1:-1;;;12579:22:23;;-1:-1:-1;;;;;12588:12:23;;;12579:22;;;181:51:27;12579:22:23;;12282:287;;-1:-1:-1;;;;;;;;;;;12579:8:23;;;154:18:27;;;;;-1:-1:-1;12579:22:23;;;;;-1:-1:-1;12579:8:23;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12611:42;12692:10;12713:1;12716:17;12656:78;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;12611:123;;12751:30;-1:-1:-1;;;;;12751:48:23;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12805:1;12751:55;12744:63;;;;:::i;:::-;12127:687;;;12084:730::o;6424:509::-;6483:23;6509:43;:41;:43::i;:::-;6576:12;;6562:27;;-1:-1:-1;;;6562:27:23;;-1:-1:-1;;;;;6576:12:23;;;6562:27;;;181:51:27;6483:69:23;;-1:-1:-1;;;;;;;;;;;;6562:13:23;;;154:18:27;;6562:27:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6599:42:23;;-1:-1:-1;6658:1:23;;-1:-1:-1;6644:16:23;;-1:-1:-1;6644:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6644:16:23;-1:-1:-1;6701:12:23;;6670:28;;6599:61;;-1:-1:-1;;;;;;6701:12:23;;6599:61;;6701:12;;6670:28;;;;:::i;:::-;-1:-1:-1;;;;;6670:43:23;;;:28;;;;;;;;;;:43;6752:104;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6752:104:23;-1:-1:-1;;;6752:104:23;;;6723:143;;-1:-1:-1;;;6723:143:23;;-1:-1:-1;;;;;;;;;;;6723:15:23;;;:143;;6752:104;;6723:143;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6876:50:23;;-1:-1:-1;;;6876:50:23;;-1:-1:-1;;;;;6876:23:23;;;-1:-1:-1;6876:23:23;;-1:-1:-1;6876:50:23;;6900:25;;6876:50;;;:::i;6939:579::-;6989:23;7015:43;:41;:43::i;:::-;7077:12;;7068:22;;-1:-1:-1;;;7068:22:23;;-1:-1:-1;;;;;7077:12:23;;;7068:22;;;181:51:27;6989:69:23;;-1:-1:-1;;;;;;;;;;;;7068:8:23;;;154:18:27;;7068:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7100:11;-1:-1:-1;;;;;7100:17:23;;7125:10;7100:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7148:16:23;;-1:-1:-1;;;7148:16:23;;7156:7;7148:16;;;7897:25:27;-1:-1:-1;;;;;;;;;;;7148:7:23;-1:-1:-1;7148:7:23;;-1:-1:-1;7870:18:27;;;-1:-1:-1;7148:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7174:42:23;;-1:-1:-1;7233:1:23;;-1:-1:-1;7219:16:23;;-1:-1:-1;7219:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7219:16:23;-1:-1:-1;7276:12:23;;7245:28;;7174:61;;-1:-1:-1;;;;;;7276:12:23;;7174:61;;7276:12;;7245:28;;;;:::i;:::-;-1:-1:-1;;;;;7245:43:23;;;:28;;;;;;;;;:43;7312:11;;7298:26;;-1:-1:-1;;;7298:26:23;;7312:11;;7298:26;;;181:51:27;-1:-1:-1;;;;;;;;;;;7298:13:23;;;154:18:27;;7298:26:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7363:67:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7363:67:23;-1:-1:-1;;;7363:67:23;;;7334:106;;-1:-1:-1;;;7334:106:23;;-1:-1:-1;;;;;;;;;;;7334:15:23;-1:-1:-1;7334:15:23;;-1:-1:-1;7334:106:23;;;;:::i;2626:382::-;2684:23;2710:43;:41;:43::i;:::-;2777:12;;2763:27;;-1:-1:-1;;;2763:27:23;;-1:-1:-1;;;;;2777:12:23;;;2763:27;;;181:51:27;2684:69:23;;-1:-1:-1;;;;;;;;;;;;2763:13:23;;;154:18:27;;2763:27:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2800:11;-1:-1:-1;;;;;2800:17:23;;2825:10;2800:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2877:66:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2877:66:23;-1:-1:-1;;;2877:66:23;;;2848:105;;-1:-1:-1;;;2848:105:23;;-1:-1:-1;;;;;;;;;;;2848:15:23;-1:-1:-1;2848:15:23;;-1:-1:-1;2848:105:23;;-1:-1:-1;2877:66:23;;2848:105;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:11;-1:-1:-1;;;;;2963:17:23;;2988:10;2963:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;921:980;1064:16;;;1078:1;1064:16;;;;;;;;;1006:11;;;;1064:16;;;;;;;;;;-1:-1:-1;;1107:11:23;;1090:14;;;;-1:-1:-1;;;;;;1107:11:23;;1090:14;;-1:-1:-1;1107:11:23;;1090:14;;;;:::i;:::-;-1:-1:-1;;;;;1090:28:23;;;;:14;;;;;;;;;;;:28;1177:16;;;1191:1;1177:16;;;;;;;;;1129:45;;1177:16;;;;;;;;;;;;-1:-1:-1;1177:16:23;1129:64;;1266:27;1237:67;;1203:28;1232:1;1203:31;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1203:101:23;;;;:31;;;;;;;;;;:101;1347:16;;;1361:1;1347:16;;;;;;;;1315:29;;1347:16;;1361:1;;1347:16;;;;;;;;;-1:-1:-1;1347:16:23;1315:48;;1391:10;1373:12;1386:1;1373:15;;;;;;;;:::i;:::-;;;;;;:28;;;;;1429:9;1411:12;1424:1;1411:15;;;;;;;;:::i;:::-;;;;;;:27;;;;;1449:46;1498:294;;;;;;;;1533:11;1498:294;;;;1572:1;1558:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1558:16:23;-1:-1:-1;1498:294:23;;;;;;;;;;1630:16;;-1:-1:-1;1630:16:23;;;;;;;;1498:294;;;1630:16;;1498:294;;;;1660:12;1498:294;;;;1686:7;1498:294;;;;1707:3;1498:294;;;;1724:5;1498:294;;;;;;1743:5;1498:294;;;;;;1762:4;1498:294;;;;;;;;;;;;;;;;;;;;;1449:343;;1803:23;1845:1;1848:17;1829:37;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1803:63:23;921:980;-1:-1:-1;;;;;;921:980:23:o;9157:744::-;9214:23;9240:43;:41;:43::i;:::-;9302:12;;9293:22;;-1:-1:-1;;;9293:22:23;;-1:-1:-1;;;;;9302:12:23;;;9293:22;;;181:51:27;9214:69:23;;-1:-1:-1;;;;;;;;;;;;9293:8:23;;;154:18:27;;9293:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9325:11;-1:-1:-1;;;;;9325:17:23;;9350:10;9325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9382:11:23;;9373:21;;-1:-1:-1;;;9373:21:23;;-1:-1:-1;;;;;9382:11:23;;;9373:21;;;181:51:27;-1:-1:-1;;;;;;;;;;;9373:8:23;-1:-1:-1;9373:8:23;;-1:-1:-1;154:18:27;;;-1:-1:-1;9373:21:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9404:42:23;;-1:-1:-1;9463:1:23;;-1:-1:-1;9449:16:23;;-1:-1:-1;9449:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9449:16:23;-1:-1:-1;9506:12:23;;9475:28;;9404:61;;-1:-1:-1;;;;;;9506:12:23;;9404:61;;9506:12;;9475:28;;;;:::i;:::-;-1:-1:-1;;;;;9475:43:23;;;:28;;;;;;;;;:43;9528:61;;-1:-1:-1;;;9528:61:23;;:34;;;;;;:61;;9563:25;;9528:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9608:13:23;;9599:23;;-1:-1:-1;;;9599:23:23;;-1:-1:-1;;;;;9608:13:23;;;9599:23;;;181:51:27;-1:-1:-1;;;;;;;;;;;9599:8:23;-1:-1:-1;9599:8:23;;-1:-1:-1;154:18:27;;9599:23:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9661:163:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9661:163:23;-1:-1:-1;;;9661:163:23;;;9632:202;;-1:-1:-1;;;9632:202:23;;-1:-1:-1;;;;;;;;;;;9632:15:23;-1:-1:-1;9632:15:23;;-1:-1:-1;9632:202:23;;;;:::i;5553:357::-;5609:23;5635:43;:41;:43::i;:::-;5688:16;;-1:-1:-1;;;5688:16:23;;5696:7;5688:16;;;7897:25:27;5609:69:23;;-1:-1:-1;;;;;;;;;;;;5688:7:23;;;7870:18:27;;5688:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5728:8:23;;5714:23;;-1:-1:-1;;;5714:23:23;;-1:-1:-1;;;;;5728:8:23;;;5714:23;;;181:51:27;-1:-1:-1;;;;;;;;;;;5714:13:23;-1:-1:-1;5714:13:23;;-1:-1:-1;154:18:27;;5714:23:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5776:67:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5776:67:23;-1:-1:-1;;;5776:67:23;;;5747:106;;-1:-1:-1;;;5747:106:23;;-1:-1:-1;;;;;;;;;;;5747:15:23;-1:-1:-1;5747:15:23;;-1:-1:-1;5747:106:23;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5863:11;-1:-1:-1;;;;;5863:19:23;;5890:10;5863:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11125:402;11209:23;11235:43;:41;:43::i;:::-;11302:11;;11288:26;;-1:-1:-1;;;11288:26:23;;-1:-1:-1;;;;;11302:11:23;;;11288:26;;;181:51:27;11209:69:23;;-1:-1:-1;;;;;;;;;;;;11288:13:23;;;154:18:27;;11288:26:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11353:101:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11353:101:23;-1:-1:-1;;;11353:101:23;;;11324:140;;-1:-1:-1;;;11324:140:23;;-1:-1:-1;;;;;;;;;;;11324:15:23;-1:-1:-1;11324:15:23;;-1:-1:-1;11324:140:23;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11474:11;-1:-1:-1;;;;;11474:44:23;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11199:328;11125:402::o;8568:583::-;8612:23;8638:43;:41;:43::i;:::-;8700:12;;8691:22;;-1:-1:-1;;;8691:22:23;;-1:-1:-1;;;;;8700:12:23;;;8691:22;;;181:51:27;8612:69:23;;-1:-1:-1;;;;;;;;;;;;8691:8:23;;;154:18:27;;8691:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8723:11;-1:-1:-1;;;;;8723:17:23;;8748:10;8723:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8780:11:23;;8771:21;;-1:-1:-1;;;8771:21:23;;-1:-1:-1;;;;;8780:11:23;;;8771:21;;;181:51:27;-1:-1:-1;;;;;;;;;;;8771:8:23;-1:-1:-1;8771:8:23;;-1:-1:-1;154:18:27;;;-1:-1:-1;8771:21:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8802:42:23;;-1:-1:-1;8861:1:23;;-1:-1:-1;8847:16:23;;-1:-1:-1;8847:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8847:16:23;-1:-1:-1;8904:12:23;;8873:28;;8802:61;;-1:-1:-1;;;;;;8904:12:23;;8802:61;;8904:12;;8873:28;;;;:::i;:::-;-1:-1:-1;;;;;8873:43:23;;;:28;;;;;;;;;:43;8926:61;;-1:-1:-1;;;8926:61:23;;:34;;;;;;:61;;8961:25;;8926:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9006:12:23;;8997:22;;-1:-1:-1;;;8997:22:23;;-1:-1:-1;;;;;9006:12:23;;;8997:22;;;181:51:27;-1:-1:-1;;;;;;;;;;;8997:8:23;-1:-1:-1;8997:8:23;;-1:-1:-1;154:18:27;;8997:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9029:50:23;;-1:-1:-1;;;9029:50:23;;-1:-1:-1;;;;;9029:23:23;;;-1:-1:-1;9029:23:23;;-1:-1:-1;9029:50:23;;9053:25;;9029:50;;;:::i;8114:448::-;8163:23;8189:43;:41;:43::i;:::-;8251:12;;8242:22;;-1:-1:-1;;;8242:22:23;;-1:-1:-1;;;;;8251:12:23;;;8242:22;;;181:51:27;8163:69:23;;-1:-1:-1;;;;;;;;;;;;8242:8:23;;;154:18:27;;8242:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8274:11;-1:-1:-1;;;;;8274:17:23;;8299:10;8274:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8322:42:23;;-1:-1:-1;8322:42:23;;-1:-1:-1;8367:16:23;;-1:-1:-1;;8367:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8367:16:23;-1:-1:-1;8407:11:23;;8393:26;;-1:-1:-1;;;8393:26:23;;-1:-1:-1;;;;;8407:11:23;;;8393:26;;;181:51:27;8322:61:23;;-1:-1:-1;;;;;;;;;;;;8393:13:23;;;154:18:27;;8393:26:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8429:61:23;;-1:-1:-1;;;8429:61:23;;-1:-1:-1;;;;;8429:34:23;;;-1:-1:-1;8429:34:23;;-1:-1:-1;8429:61:23;;8464:25;;8429:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8507:11;-1:-1:-1;;;;;8507:40:23;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;8500:55;;;;:::i;1819:584:0:-;1873:7;;1853:4;;1873:7;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;-1:-1:-1;;;;;;;;;;;2978:55:0;3059:16;1980:374;;2196:43;;;-1:-1:-1;;;;;;;;;;;2196:43:0;;;2480:51:27;;;-1:-1:-1;;;2547:18:27;;;2540:34;2196:43:0;;;;;;;;;2453:18:27;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;11533:545:23:-;11611:23;11637:43;:41;:43::i;:::-;11690:16;;-1:-1:-1;;;11690:16:23;;11698:7;11690:16;;;7897:25:27;11611:69:23;;-1:-1:-1;;;;;;;;;;;;11690:7:23;;;7870:18:27;;11690:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11730:12:23;;11716:27;;-1:-1:-1;;;11716:27:23;;-1:-1:-1;;;;;11730:12:23;;;11716:27;;;181:51:27;-1:-1:-1;;;;;;;;;;;11716:13:23;-1:-1:-1;11716:13:23;;-1:-1:-1;154:18:27;;11716:27:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11753:11;-1:-1:-1;;;;;11753:44:23;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11838:167:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11838:167:23;-1:-1:-1;;;11838:167:23;;;11809:206;;-1:-1:-1;;;11809:206:23;;-1:-1:-1;;;;;;;;;;;11809:15:23;-1:-1:-1;11809:15:23;;-1:-1:-1;11809:206:23;;;;:::i;4792:357::-;4846:23;4872:43;:41;:43::i;:::-;4925:16;;-1:-1:-1;;;4925:16:23;;4933:7;4925:16;;;7897:25:27;4846:69:23;;-1:-1:-1;;;;;;;;;;;;4925:7:23;;;7870:18:27;;4925:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4965:12:23;;4951:27;;-1:-1:-1;;;4951:27:23;;-1:-1:-1;;;;;4965:12:23;;;4951:27;;;181:51:27;-1:-1:-1;;;;;;;;;;;4951:13:23;-1:-1:-1;4951:13:23;;-1:-1:-1;154:18:27;;4951:27:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5017:67:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5017:67:23;-1:-1:-1;;;5017:67:23;;;4988:106;;-1:-1:-1;;;4988:106:23;;-1:-1:-1;;;;;;;;;;;4988:15:23;-1:-1:-1;4988:15:23;;-1:-1:-1;4988:106:23;;;;:::i;9907:1212::-;9972:23;9998:43;:41;:43::i;:::-;10060:12;;10051:22;;-1:-1:-1;;;10051:22:23;;-1:-1:-1;;;;;10060:12:23;;;10051:22;;;181:51:27;9972:69:23;;-1:-1:-1;;;;;;;;;;;;10051:8:23;;;154:18:27;;10051:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10083:11;-1:-1:-1;;;;;10083:17:23;;10108:10;10083:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10140:13:23;;10131:23;;-1:-1:-1;;;10131:23:23;;-1:-1:-1;;;;;10140:13:23;;;10131:23;;;181:51:27;-1:-1:-1;;;;;;;;;;;10131:8:23;-1:-1:-1;10131:8:23;;-1:-1:-1;154:18:27;;;-1:-1:-1;10131:23:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10164:11;-1:-1:-1;;;;;10164:17:23;;10189:10;10164:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10221:8:23;;10212:18;;-1:-1:-1;;;10212:18:23;;-1:-1:-1;;;;;10221:8:23;;;10212:18;;;181:51:27;-1:-1:-1;;;;;;;;;;;10212:8:23;-1:-1:-1;10212:8:23;;-1:-1:-1;154:18:27;;;-1:-1:-1;10212:18:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10240:11;-1:-1:-1;;;;;10240:19:23;;10267:10;10240:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10290:125;10320:11;-1:-1:-1;;;;;10312:28:23;;10354:10;10290:125;;;;;;;;;;;;;;;;;:8;:125::i;:::-;10470:16;;;10484:1;10470:16;;;;;;;;;10425:42;;10470:16;;;;;;;;;-1:-1:-1;;10527:12:23;;10496:28;;;;-1:-1:-1;;;;;;10527:12:23;;10496:28;;-1:-1:-1;10527:12:23;;10496:28;;;;:::i;:::-;-1:-1:-1;;;;;10496:43:23;;;:28;;;;;;;;;:43;10558:11;;10549:21;;-1:-1:-1;;;10549:21:23;;10558:11;;10549:21;;;181:51:27;-1:-1:-1;;;;;;;;;;;10549:8:23;;;154:18:27;;10549:21:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10580:61:23;;-1:-1:-1;;;10580:61:23;;-1:-1:-1;;;;;10580:34:23;;;-1:-1:-1;10580:34:23;;-1:-1:-1;10580:61:23;;10615:25;;10580:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10660:11:23;;10651:21;;-1:-1:-1;;;10651:21:23;;-1:-1:-1;;;;;10660:11:23;;;10651:21;;;181:51:27;-1:-1:-1;;;;;;;;;;;10651:8:23;-1:-1:-1;10651:8:23;;-1:-1:-1;154:18:27;;10651:21:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10682:50:23;;-1:-1:-1;;;10682:50:23;;-1:-1:-1;;;;;10682:23:23;;;-1:-1:-1;10682:23:23;;-1:-1:-1;10682:50:23;;10706:25;;10682:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10742:123;10772:11;-1:-1:-1;;;;;10764:28:23;;10806:9;10742:123;;;;;;;;;;;;;;;;;:8;:123::i;:::-;10875:16;;-1:-1:-1;;;10875:16:23;;10883:7;10875:16;;;7897:25:27;-1:-1:-1;;;;;;;;;;;10875:7:23;;;7870:18:27;;10875:16:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10915:11:23;;10901:26;;-1:-1:-1;;;10901:26:23;;-1:-1:-1;;;;;10915:11:23;;;10901:26;;;181:51:27;-1:-1:-1;;;;;;;;;;;10901:13:23;-1:-1:-1;10901:13:23;;-1:-1:-1;154:18:27;;10901:26:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10937:11;-1:-1:-1;;;;;10937:44:23;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10993:119;11023:11;-1:-1:-1;;;;;11015:28:23;;11057:7;10993:119;;;;;;;;;;;;;-1:-1:-1;;;10993:119:23;;;:8;:119::i;12820:939::-;12924:16;;;12938:1;12924:16;;;;;;;;;12892:29;;12924:16;;;;;;;;;;;-1:-1:-1;12924:16:23;12892:48;;12968:9;12950:12;12963:1;12950:15;;;;;;;;:::i;:::-;;;;;;;;;;;:27;;;;13037:287;;;-1:-1:-1;13037:287:23;;;13072:16;;;;;;;;13037:287;;13102:16;;;;;;;;;;13037:287;;;;13132:16;;;;;;;;;;13037:287;;;;13162:16;;;;;;;;;;13037:287;;;;;;;;;;13218:7;13037:287;;;;13239:3;13037:287;;;;;;;;;;;;;;;;;-1:-1:-1;;;13037:287:23;;;;;;;;;;;;;;;;;;13343:12;;13334:22;;-1:-1:-1;;;13334:22:23;;-1:-1:-1;;;;;13343:12:23;;;13334:22;;;181:51:27;13334:22:23;;13037:287;;-1:-1:-1;;;;;;;;;;;13334:8:23;;;154:18:27;;;;;-1:-1:-1;13334:22:23;;;;;-1:-1:-1;13334:8:23;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13395:67:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13395:67:23;-1:-1:-1;;;13395:67:23;;;13366:106;;-1:-1:-1;;;13366:106:23;;-1:-1:-1;;;;;;;;;;;13366:15:23;-1:-1:-1;13366:15:23;;-1:-1:-1;13366:106:23;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13505:9;13516:1;13519:17;13482:55;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13557:12:23;;13548:22;;-1:-1:-1;;;13548:22:23;;-1:-1:-1;;;;;13557:12:23;;;13548:22;;;181:51:27;-1:-1:-1;;;;;;;;;;;13548:8:23;;;154:18:27;;13548:22:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13609:67:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13609:67:23;-1:-1:-1;;;13609:67:23;;;13580:106;;-1:-1:-1;;;13580:106:23;;-1:-1:-1;;;;;;;;;;;13580:15:23;-1:-1:-1;13580:15:23;;-1:-1:-1;13580:106:23;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13719:10;13731:1;13734:17;13696:56;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5469:178:0;5550:1;5545;:6;5541:100;;5572:30;5598:3;5572:30;;;;;;:::i;:::-;;;;;;;;5616:14;5625:1;5628;5264;5259;:6;5255:203;;5286:41;;;;;9828:2:27;9810:21;;;9867:2;9847:18;;;9840:30;9906:34;9901:2;9886:18;;9879:62;-1:-1:-1;;;9972:2:27;9957:18;;9950:32;10014:3;9999:19;;9626:398;5286:41:0;;;;;;;;5346:31;;;10241:21:27;;;10298:2;10278:18;;;10271:30;-1:-1:-1;;;10332:2:27;10317:18;;10310:40;10417:4;10402:20;;10395:36;;;5346:31:0;;;;;;;10382:3:27;5346:31:0;;;5396;;;10654:21:27;;;10711:2;10691:18;;;10684:30;-1:-1:-1;;;10745:2:27;10730:18;;10723:40;10830:4;10815:20;;10808:36;;;5396:31:0;;;;;;;10795:3:27;5396:31:0;;;5441:6;-1:-1:-1;;;;;;;;;;;2978:55:0;3059:16;2445:359;;2645:67;;;-1:-1:-1;;;;;;;;;;;2645:67:0;;;11057:51:27;;;-1:-1:-1;;;11124:18:27;;;11117:34;;;;2705:4:0;11167:18:27;;;11160:34;2482:11:0;;1671:64;2579:43;;11030:18:27;;2645:67:0;;;-1:-1:-1;;2645:67:0;;;;;;;;;;2534:196;;;2645:67;2534:196;;:::i;:::-;;;;-1:-1:-1;;2534:196:0;;;;;;;;;;2499:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2445:359:0;2813:7;:14;;-1:-1:-1;;2813:14:0;;;;;2410:424::o;-1:-1:-1:-;;;;;;;;:::o;2793:127:27:-;2854:10;2849:3;2845:20;2842:1;2835:31;2885:4;2882:1;2875:15;2909:4;2906:1;2899:15;2925:127;2986:10;2981:3;2977:20;2974:1;2967:31;3017:4;3014:1;3007:15;3041:4;3038:1;3031:15;3057:658;3228:2;3280:21;;;3350:13;;3253:18;;;3372:22;;;3199:4;;3228:2;3451:15;;;;3425:2;3410:18;;;3199:4;3494:195;3508:6;3505:1;3502:13;3494:195;;;3573:13;;-1:-1:-1;;;;;3569:39:27;3557:52;;3664:15;;;;3629:12;;;;3605:1;3523:9;3494:195;;;-1:-1:-1;3706:3:27;;3057:658;-1:-1:-1;;;;;;3057:658:27:o;3720:184::-;3790:6;3843:2;3831:9;3822:7;3818:23;3814:32;3811:52;;;3859:1;3856;3849:12;3811:52;-1:-1:-1;3882:16:27;;3720:184;-1:-1:-1;3720:184:27:o;3909:127::-;3970:10;3965:3;3961:20;3958:1;3951:31;4001:4;3998:1;3991:15;4025:4;4022:1;4015:15;4041:461;4094:3;4132:5;4126:12;4159:6;4154:3;4147:19;4185:4;4214:2;4209:3;4205:12;4198:19;;4251:2;4244:5;4240:14;4272:1;4282:195;4296:6;4293:1;4290:13;4282:195;;;4361:13;;-1:-1:-1;;;;;4357:39:27;4345:52;;4417:12;;;;4452:15;;;;4393:1;4311:9;4282:195;;;-1:-1:-1;4493:3:27;;4041:461;-1:-1:-1;;;;;4041:461:27:o;4507:435::-;4560:3;4598:5;4592:12;4625:6;4620:3;4613:19;4651:4;4680:2;4675:3;4671:12;4664:19;;4717:2;4710:5;4706:14;4738:1;4748:169;4762:6;4759:1;4756:13;4748:169;;;4823:13;;4811:26;;4857:12;;;;4892:15;;;;4784:1;4777:9;4748:169;;4947:250;5032:1;5042:113;5056:6;5053:1;5050:13;5042:113;;;5132:11;;;5126:18;5113:11;;;5106:39;5078:2;5071:10;5042:113;;;-1:-1:-1;;5189:1:27;5171:16;;5164:27;4947:250::o;5202:271::-;5244:3;5282:5;5276:12;5309:6;5304:3;5297:19;5325:76;5394:6;5387:4;5382:3;5378:14;5371:4;5364:5;5360:16;5325:76;:::i;:::-;5455:2;5434:15;-1:-1:-1;;5430:29:27;5421:39;;;;5462:4;5417:50;;5202:271;-1:-1:-1;;5202:271:27:o;5478:2031::-;5723:6;5712:9;5705:25;5766:2;5761;5750:9;5746:18;5739:30;5686:4;5804:6;5798:13;5830:6;5872:2;5867;5856:9;5852:18;5845:30;5898:63;5956:3;5945:9;5941:19;5927:12;5898:63;:::i;:::-;5884:77;;6010:2;6002:6;5998:15;5992:22;6037:2;6033:7;6104:2;6092:9;6084:6;6080:22;6076:31;6071:2;6060:9;6056:18;6049:59;6131:52;6176:6;6160:14;6131:52;:::i;:::-;6117:66;;6232:2;6224:6;6220:15;6214:22;6192:44;;6301:2;6289:9;6281:6;6277:22;6273:31;6267:3;6256:9;6252:19;6245:60;6328:52;6373:6;6357:14;6328:52;:::i;:::-;6314:66;;6429:2;6421:6;6417:15;6411:22;6389:44;;6498:2;6486:9;6478:6;6474:22;6470:31;6464:3;6453:9;6449:19;6442:60;6525:52;6570:6;6554:14;6525:52;:::i;:::-;6511:66;;6626:3;6618:6;6614:16;6608:23;6586:45;;6696:2;6684:9;6676:6;6672:22;6668:31;6662:3;6651:9;6647:19;6640:60;6723:52;6768:6;6752:14;6723:52;:::i;:::-;6709:66;;6830:3;6822:6;6818:16;6812:23;6806:3;6795:9;6791:19;6784:52;6873:3;6865:6;6861:16;6855:23;6845:33;;6897:3;6936:2;6931;6920:9;6916:18;6909:30;6988:3;6980:6;6976:16;6970:23;6948:45;;7012:3;7024:51;7071:2;7060:9;7056:18;7040:14;313:13;306:21;294:34;;243:91;7024:51;7112:15;;;7106:22;;-1:-1:-1;7147:3:27;;7159:51;7191:18;;;7106:22;313:13;306:21;294:34;;243:91;7159:51;7247:15;;7241:22;313:13;306:21;7304:18;;;294:34;;;;7360:15;;;7354:22;7417;;;7413:31;;;7407:3;7392:19;;7385:60;-1:-1:-1;7462:41:27;7417:22;7354;7462:41;:::i;:::-;7454:49;5478:2031;-1:-1:-1;;;;;;5478:2031:27:o;7514:218::-;7661:2;7650:9;7643:21;7624:4;7681:45;7722:2;7711:9;7707:18;7699:6;7681:45;:::i;:::-;7673:53;7514:218;-1:-1:-1;;;7514:218:27:o;8212:384::-;-1:-1:-1;;;;;;8397:33:27;;8385:46;;8454:13;;8367:3;;8476:74;8454:13;8539:1;8530:11;;8523:4;8511:17;;8476:74;:::i;:::-;8570:16;;;;8588:1;8566:24;;8212:384;-1:-1:-1;;;8212:384:27:o;8601:287::-;8730:3;8768:6;8762:13;8784:66;8843:6;8838:3;8831:4;8823:6;8819:17;8784:66;:::i;:::-;8866:16;;;;;8601:287;-1:-1:-1;;8601:287:27:o;8893:277::-;8960:6;9013:2;9001:9;8992:7;8988:23;8984:32;8981:52;;;9029:1;9026;9019:12;8981:52;9061:9;9055:16;9114:5;9107:13;9100:21;9093:5;9090:32;9080:60;;9136:1;9133;9126:12;9175:446;9425:2;9414:9;9407:21;9464:1;9459:2;9448:9;9444:18;9437:29;-1:-1:-1;;;9497:2:27;9486:9;9482:18;9475:35;9548:3;9541:4;9530:9;9526:20;9519:33;9388:4;9569:46;9610:3;9599:9;9595:19;9587:6;9569:46;:::i",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "IS_TEST()": "fa7626d4",
    "failed()": "ba414fa6",
    "initializePepperstakeContractWithDefaults()": "7b5340cd",
    "setUp()": "0a9254e4",
    "testApproveEmptyList()": "ac6a4242",
    "testApproveForParticipants()": "0bb3f8f1",
    "testApproveInvalidParticipant()": "2f647527",
    "testApproveWindowOver()": "51e79748",
    "testCreatorParticipation()": "4c504632",
    "testCreatorParticipationWithIncorrectAmount()": "fdb5d2db",
    "testParticipantAllowList()": "1fc168ee",
    "testParticipantHasNotCompleted()": "4f9f4a07",
    "testPostCompletionWindowDistribution()": "e63bdc2c",
    "testPostCompletionWindowDistributionAlreadyCalled()": "bff88651",
    "testPostCompletionWindowDistributionReturnWindowNotOver()": "8d61b56e",
    "testReturnStake()": "8db81b75",
    "testReturnStakeNonSupervisor()": "7bcf8810",
    "testSponsor()": "0d930ecd",
    "testSponsorReturnWindowOver()": "7d28054b",
    "testStake()": "3a1143da",
    "testStakeAlreadyParticipating()": "523a6ee8",
    "testStakeIncorrectAmount()": "3a1a8594",
    "testStakeMaxParticipantsReached()": "281fef2f",
    "testStakeReturnWindowOver()": "e608f5bf"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializePepperstakeContractWithDefaults\",\"outputs\":[{\"internalType\":\"contract PepperStake\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testApproveEmptyList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testApproveForParticipants\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testApproveInvalidParticipant\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testApproveWindowOver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testCreatorParticipation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testCreatorParticipationWithIncorrectAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testParticipantAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testParticipantHasNotCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPostCompletionWindowDistribution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPostCompletionWindowDistributionAlreadyCalled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPostCompletionWindowDistributionReturnWindowNotOver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testReturnStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testReturnStakeNonSupervisor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSponsorReturnWindowOver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testStakeAlreadyParticipating\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testStakeIncorrectAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testStakeMaxParticipantsReached\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testStakeReturnWindowOver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/PepperStake.t.sol\":\"PepperStakeTest\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Common.sol\":{\"keccak256\":\"0x3ed7f49e907eaf339c3bb0b79a81d303d0f9e37aa5b8a9854c0cbfc3ad9a3ef0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c2532fb5fea32c6dc165518f2c4918af25d9139d17c11da330414c9797a70b\",\"dweb:/ipfs/QmV4r8a1e9Rgu2xoigVCuSv3fZ737wD2DXbV6ZmHXVUtDn\"]},\"lib/forge-std/src/Components.sol\":{\"keccak256\":\"0xd3b8ba6df58174d5d650a668dfa49eeee28b2b855514b9e793e1c0b69d747149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce2b2ca79d5ce993b91358ed3d588396295e0aba9bb923481c1ffa5058a0dcd\",\"dweb:/ipfs/QmPNymteQmLWk7SqQhNsF6Rbc3xFPY7xGb4fBKravHLXD3\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xd2ac402483b70ead6e053993c03253a9d7d6b437a981b7a0158c4748abf202f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f662716875766eb46d34de4949bfb79ca6c408054f004fff0b2fc23d967182f8\",\"dweb:/ipfs/QmeNGCZBnSDjK7djHuGJ34kV2rNh8SL69SJTjR1PEsgJi1\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x9e421049151727ad09416e8d85e9bab277971f2ff750f230f50ef3c22ee40532\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8309e82f8020f4936d10b800b6166b28c4ea21b6f25d670b6735bd5d664ded3\",\"dweb:/ipfs/QmQP9d7uDsUGypHuc5LCd8zD4TsmvSqRUEqX2npMo6NLiQ\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce189d25fa333ca6611c0d24a16482df6256420764c747e783e60cf9f28c922e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0237b62ace5fe2311343eb32299b2f1cf0177394d9826eae23f1d1f92ae31f09\",\"dweb:/ipfs/QmVxvdgnheCWjBqE75nvapSKSr3UPRLrZQzxjcf5vxDmE2\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a\",\"dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xdfdea2fc16ca475b82c74ef8a1ee50249a086ea3e1d7dcb2fc5b507f2b69500b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e68c4ac142bfdcacfc1a3ffadb63e67213464be620b277586ccf74605ccc33d3\",\"dweb:/ipfs/QmXAiLV8LT4h4z6x1xc88BfJpkddSdGtQkBbtPf441MCqi\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x1d048e702d241727d75685d7516b51b72ff23513f6e2193e569f0fbc2a9112ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089652ff5d0bb1093f684863b3def0a505edb9c6fd533f8bceb1f12ce833c90e\",\"dweb:/ipfs/QmccjqbH8guWaVDi3QAEirMMs45XF3VV68dwBa5xwnFL1k\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x2d0cec0827a5ee9df571cde75cb742f8b977218283739e163801baa8c34439f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310afde56e845d7f36ca7ce191715038f8259d7a9250c171689744a797223556\",\"dweb:/ipfs/QmULG8AwNa5B64EMUSCwG1bAyJJK1sodAsAYvjk3vXbgMj\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x225cc1ec33efd35c90e78aec0792ed9751cd6217e646271172421e96e2e2cc0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c6adbd216e40ca2387835b8618c82e7153cb826023d38943bbb0c2e992644aa\",\"dweb:/ipfs/QmZeejwEkm7iH9NHih7dPbuNqivuFn27EkgJesgByzS9wD\"]},\"src/PepperStake.sol\":{\"keccak256\":\"0x13a7299a18b2e5ba120025f2f7405954743f8c097a656829035a5086fd33d41a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3787b76f29496934135b8b9a4712dacb33edd5e28f86e8c621d9a77a0f8dc4eb\",\"dweb:/ipfs/Qme2bxK5y7DePX4bSXK9EyTaRJeyLAQtXvLic7a79M2D2e\"]},\"src/interfaces/IPepperStake.sol\":{\"keccak256\":\"0xeba18a73234925d426d51a7850e69ba6d500c69c790bd6532a8fb8a3e3f833a9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a6cc7c9e50cf2daa31d9a83f19798534a338d4dc231ad25244aad034465eb970\",\"dweb:/ipfs/QmbZyE8YHxX7GhFV4w9goZgvZ3RpeD2oRoLZrUM5PrjbCj\"]},\"src/interfaces/IPepperStakeOracleDelegate.sol\":{\"keccak256\":\"0x3321ae9d7b6a6393e9915163476d1f6431fb942da3fd56af5acc244293b4c4b5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b0146ab1d43908105a2bd535d911304d9c6b27d51868a75c2aeb79bdf9bad3d3\",\"dweb:/ipfs/QmS8nQGXmyPqWqd9peS2amNxjRqMJ3DB6SGiFzarkARJqM\"]},\"src/structs/LaunchPepperStakeData.sol\":{\"keccak256\":\"0x7385dad7562466a52e9f1b6e4ad21a15cd358cb7edc069df1ea04a23019c32d2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8a9cea5e2502a371c07342ec8c8d103df0ef65344fb2f28149e71f39741a2e4b\",\"dweb:/ipfs/QmbCaVDtKXi5iVyaTNA69MNcceewHL5GGLBEj4tyinq4jt\"]},\"src/structs/Participant.sol\":{\"keccak256\":\"0x05fce68183d793ae43291f10ec2996ed5e6479c3bd7f47659fea68be33d23acf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce74d0ea1b94e0552774b6bf42e68263e88d654bdb892232e8f6c13b7e5e5883\",\"dweb:/ipfs/QmfGxbiYyVkYRCywGLU4iUiLHPX9dSqXfFjp3BHhiso1V6\"]},\"test/PepperStake.t.sol\":{\"keccak256\":\"0x402922816d58758706657f24b12e46cbac13960d1c0ec7428527870897945dea\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f1add94113a34f52d9e06802c4600c4b11953b9cdd0312a2cf74ae961cba9eb6\",\"dweb:/ipfs/QmUy2XgmAjR9ubfi7V7zJot8HspoDQ2ZwA5xTHZpCyEKjr\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.17+commit.8df45f5f"
    },
    "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": "failed",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "initializePepperstakeContractWithDefaults",
          "outputs": [
            {
              "internalType": "contract PepperStake",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setUp"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testApproveEmptyList"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testApproveForParticipants"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testApproveInvalidParticipant"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testApproveWindowOver"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testCreatorParticipation"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testCreatorParticipationWithIncorrectAmount"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testParticipantAllowList"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testParticipantHasNotCompleted"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testPostCompletionWindowDistribution"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testPostCompletionWindowDistributionAlreadyCalled"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testPostCompletionWindowDistributionReturnWindowNotOver"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testReturnStake"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testReturnStakeNonSupervisor"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testSponsor"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testSponsorReturnWindowOver"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testStake"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testStakeAlreadyParticipating"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testStakeIncorrectAmount"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testStakeMaxParticipantsReached"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testStakeReturnWindowOver"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {},
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        ":ds-test/=lib/forge-std/lib/ds-test/src/",
        ":forge-std/=lib/forge-std/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "test/PepperStake.t.sol": "PepperStakeTest"
      },
      "libraries": {}
    },
    "sources": {
      "lib/forge-std/lib/ds-test/src/test.sol": {
        "keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54",
        "urls": [
          "bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5",
          "dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"
        ],
        "license": "GPL-3.0-or-later"
      },
      "lib/forge-std/src/Common.sol": {
        "keccak256": "0x3ed7f49e907eaf339c3bb0b79a81d303d0f9e37aa5b8a9854c0cbfc3ad9a3ef0",
        "urls": [
          "bzz-raw://01c2532fb5fea32c6dc165518f2c4918af25d9139d17c11da330414c9797a70b",
          "dweb:/ipfs/QmV4r8a1e9Rgu2xoigVCuSv3fZ737wD2DXbV6ZmHXVUtDn"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/Components.sol": {
        "keccak256": "0xd3b8ba6df58174d5d650a668dfa49eeee28b2b855514b9e793e1c0b69d747149",
        "urls": [
          "bzz-raw://cce2b2ca79d5ce993b91358ed3d588396295e0aba9bb923481c1ffa5058a0dcd",
          "dweb:/ipfs/QmPNymteQmLWk7SqQhNsF6Rbc3xFPY7xGb4fBKravHLXD3"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdAssertions.sol": {
        "keccak256": "0xd2ac402483b70ead6e053993c03253a9d7d6b437a981b7a0158c4748abf202f5",
        "urls": [
          "bzz-raw://f662716875766eb46d34de4949bfb79ca6c408054f004fff0b2fc23d967182f8",
          "dweb:/ipfs/QmeNGCZBnSDjK7djHuGJ34kV2rNh8SL69SJTjR1PEsgJi1"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdCheats.sol": {
        "keccak256": "0x9e421049151727ad09416e8d85e9bab277971f2ff750f230f50ef3c22ee40532",
        "urls": [
          "bzz-raw://d8309e82f8020f4936d10b800b6166b28c4ea21b6f25d670b6735bd5d664ded3",
          "dweb:/ipfs/QmQP9d7uDsUGypHuc5LCd8zD4TsmvSqRUEqX2npMo6NLiQ"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdError.sol": {
        "keccak256": "0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77",
        "urls": [
          "bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6",
          "dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdJson.sol": {
        "keccak256": "0xce189d25fa333ca6611c0d24a16482df6256420764c747e783e60cf9f28c922e",
        "urls": [
          "bzz-raw://0237b62ace5fe2311343eb32299b2f1cf0177394d9826eae23f1d1f92ae31f09",
          "dweb:/ipfs/QmVxvdgnheCWjBqE75nvapSKSr3UPRLrZQzxjcf5vxDmE2"
        ],
        "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": "0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5",
        "urls": [
          "bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a",
          "dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdUtils.sol": {
        "keccak256": "0xdfdea2fc16ca475b82c74ef8a1ee50249a086ea3e1d7dcb2fc5b507f2b69500b",
        "urls": [
          "bzz-raw://e68c4ac142bfdcacfc1a3ffadb63e67213464be620b277586ccf74605ccc33d3",
          "dweb:/ipfs/QmXAiLV8LT4h4z6x1xc88BfJpkddSdGtQkBbtPf441MCqi"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/Test.sol": {
        "keccak256": "0x1d048e702d241727d75685d7516b51b72ff23513f6e2193e569f0fbc2a9112ad",
        "urls": [
          "bzz-raw://089652ff5d0bb1093f684863b3def0a505edb9c6fd533f8bceb1f12ce833c90e",
          "dweb:/ipfs/QmccjqbH8guWaVDi3QAEirMMs45XF3VV68dwBa5xwnFL1k"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/Vm.sol": {
        "keccak256": "0x2d0cec0827a5ee9df571cde75cb742f8b977218283739e163801baa8c34439f6",
        "urls": [
          "bzz-raw://310afde56e845d7f36ca7ce191715038f8259d7a9250c171689744a797223556",
          "dweb:/ipfs/QmULG8AwNa5B64EMUSCwG1bAyJJK1sodAsAYvjk3vXbgMj"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/console.sol": {
        "keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba",
        "urls": [
          "bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70",
          "dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/console2.sol": {
        "keccak256": "0x225cc1ec33efd35c90e78aec0792ed9751cd6217e646271172421e96e2e2cc0f",
        "urls": [
          "bzz-raw://6c6adbd216e40ca2387835b8618c82e7153cb826023d38943bbb0c2e992644aa",
          "dweb:/ipfs/QmZeejwEkm7iH9NHih7dPbuNqivuFn27EkgJesgByzS9wD"
        ],
        "license": "MIT"
      },
      "src/PepperStake.sol": {
        "keccak256": "0x13a7299a18b2e5ba120025f2f7405954743f8c097a656829035a5086fd33d41a",
        "urls": [
          "bzz-raw://3787b76f29496934135b8b9a4712dacb33edd5e28f86e8c621d9a77a0f8dc4eb",
          "dweb:/ipfs/Qme2bxK5y7DePX4bSXK9EyTaRJeyLAQtXvLic7a79M2D2e"
        ],
        "license": "UNLICENSED"
      },
      "src/interfaces/IPepperStake.sol": {
        "keccak256": "0xeba18a73234925d426d51a7850e69ba6d500c69c790bd6532a8fb8a3e3f833a9",
        "urls": [
          "bzz-raw://a6cc7c9e50cf2daa31d9a83f19798534a338d4dc231ad25244aad034465eb970",
          "dweb:/ipfs/QmbZyE8YHxX7GhFV4w9goZgvZ3RpeD2oRoLZrUM5PrjbCj"
        ],
        "license": "UNLICENSED"
      },
      "src/interfaces/IPepperStakeOracleDelegate.sol": {
        "keccak256": "0x3321ae9d7b6a6393e9915163476d1f6431fb942da3fd56af5acc244293b4c4b5",
        "urls": [
          "bzz-raw://b0146ab1d43908105a2bd535d911304d9c6b27d51868a75c2aeb79bdf9bad3d3",
          "dweb:/ipfs/QmS8nQGXmyPqWqd9peS2amNxjRqMJ3DB6SGiFzarkARJqM"
        ],
        "license": "UNLICENSED"
      },
      "src/structs/LaunchPepperStakeData.sol": {
        "keccak256": "0x7385dad7562466a52e9f1b6e4ad21a15cd358cb7edc069df1ea04a23019c32d2",
        "urls": [
          "bzz-raw://8a9cea5e2502a371c07342ec8c8d103df0ef65344fb2f28149e71f39741a2e4b",
          "dweb:/ipfs/QmbCaVDtKXi5iVyaTNA69MNcceewHL5GGLBEj4tyinq4jt"
        ],
        "license": "UNLICENSED"
      },
      "src/structs/Participant.sol": {
        "keccak256": "0x05fce68183d793ae43291f10ec2996ed5e6479c3bd7f47659fea68be33d23acf",
        "urls": [
          "bzz-raw://ce74d0ea1b94e0552774b6bf42e68263e88d654bdb892232e8f6c13b7e5e5883",
          "dweb:/ipfs/QmfGxbiYyVkYRCywGLU4iUiLHPX9dSqXfFjp3BHhiso1V6"
        ],
        "license": "UNLICENSED"
      },
      "test/PepperStake.t.sol": {
        "keccak256": "0x402922816d58758706657f24b12e46cbac13960d1c0ec7428527870897945dea",
        "urls": [
          "bzz-raw://f1add94113a34f52d9e06802c4600c4b11953b9cdd0312a2cf74ae961cba9eb6",
          "dweb:/ipfs/QmUy2XgmAjR9ubfi7V7zJot8HspoDQ2ZwA5xTHZpCyEKjr"
        ],
        "license": "UNLICENSED"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "test/PepperStake.t.sol",
    "id": 27122,
    "exportedSymbols": {
      "CommonBase": [
        1818
      ],
      "DSTest": [
        1786
      ],
      "IPepperStake": [
        25523
      ],
      "IPepperStakeOracleDelegate": [
        25552
      ],
      "LaunchPepperStakeData": [
        25582
      ],
      "Participant": [
        25595
      ],
      "PepperStake": [
        25401
      ],
      "PepperStakeTest": [
        27121
      ],
      "StdAssertions": [
        2677
      ],
      "StdCheats": [
        5073
      ],
      "StdStorage": [
        5672
      ],
      "StdUtils": [
        7501
      ],
      "Test": [
        7532
      ],
      "TestBase": [
        7521
      ],
      "Vm": [
        8315
      ],
      "console": [
        16379
      ],
      "console2": [
        24444
      ],
      "stdError": [
        5139
      ],
      "stdJson": [
        5499
      ],
      "stdMath": [
        5641
      ],
      "stdStorage": [
        7106
      ]
    },
    "nodeType": "SourceUnit",
    "src": "39:13723:23",
    "nodes": [
      {
        "id": 25597,
        "nodeType": "PragmaDirective",
        "src": "39:24:23",
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".13"
        ]
      },
      {
        "id": 25598,
        "nodeType": "ImportDirective",
        "src": "65:28:23",
        "absolutePath": "lib/forge-std/src/Test.sol",
        "file": "forge-std/Test.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 27122,
        "sourceUnit": 7533,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 25599,
        "nodeType": "ImportDirective",
        "src": "94:32:23",
        "absolutePath": "src/PepperStake.sol",
        "file": "../src/PepperStake.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 27122,
        "sourceUnit": 25402,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 25600,
        "nodeType": "ImportDirective",
        "src": "127:50:23",
        "absolutePath": "src/structs/LaunchPepperStakeData.sol",
        "file": "../src/structs/LaunchPepperStakeData.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 27122,
        "sourceUnit": 25583,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 27121,
        "nodeType": "ContractDefinition",
        "src": "179:13582:23",
        "nodes": [
          {
            "id": 25613,
            "nodeType": "VariableDeclaration",
            "src": "218:74:23",
            "constant": false,
            "mutability": "mutable",
            "name": "_participant",
            "nameLocation": "235:12:23",
            "scope": 27121,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 25603,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "218:7:23",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "arguments": [
                {
                  "arguments": [
                    {
                      "arguments": [
                        {
                          "hexValue": "7061727469636970616e74",
                          "id": 25609,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "276:13:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_89ac24e9d325e5935dd9098bddc7f9879a6b0e297f7e2423d271ca0fed835edb",
                            "typeString": "literal_string \"participant\""
                          },
                          "value": "participant"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_89ac24e9d325e5935dd9098bddc7f9879a6b0e297f7e2423d271ca0fed835edb",
                            "typeString": "literal_string \"participant\""
                          }
                        ],
                        "id": 25608,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "266:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 25610,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "266:24:23",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    ],
                    "id": 25607,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "258:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_bytes20_$",
                      "typeString": "type(bytes20)"
                    },
                    "typeName": {
                      "id": 25606,
                      "name": "bytes20",
                      "nodeType": "ElementaryTypeName",
                      "src": "258:7:23",
                      "typeDescriptions": {}
                    }
                  },
                  "id": 25611,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "258:33:23",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                ],
                "id": 25605,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "250:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": {
                  "id": 25604,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "250:7:23",
                  "typeDescriptions": {}
                }
              },
              "id": 25612,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "250:42:23",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 25624,
            "nodeType": "VariableDeclaration",
            "src": "298:84:23",
            "constant": false,
            "mutability": "mutable",
            "name": "_participant2",
            "nameLocation": "315:13:23",
            "scope": 27121,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 25614,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "298:7:23",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "arguments": [
                {
                  "arguments": [
                    {
                      "arguments": [
                        {
                          "hexValue": "7061727469636970616e7432",
                          "id": 25620,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "365:14:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_cdaeda3f1bd11c1ec375a3746d05b54634c58c25f5983416779d7a7c931f91e5",
                            "typeString": "literal_string \"participant2\""
                          },
                          "value": "participant2"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_cdaeda3f1bd11c1ec375a3746d05b54634c58c25f5983416779d7a7c931f91e5",
                            "typeString": "literal_string \"participant2\""
                          }
                        ],
                        "id": 25619,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "355:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 25621,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "355:25:23",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    ],
                    "id": 25618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "347:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_bytes20_$",
                      "typeString": "type(bytes20)"
                    },
                    "typeName": {
                      "id": 25617,
                      "name": "bytes20",
                      "nodeType": "ElementaryTypeName",
                      "src": "347:7:23",
                      "typeDescriptions": {}
                    }
                  },
                  "id": 25622,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "347:34:23",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                ],
                "id": 25616,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "339:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": {
                  "id": 25615,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "339:7:23",
                  "typeDescriptions": {}
                }
              },
              "id": 25623,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "339:43:23",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 25635,
            "nodeType": "VariableDeclaration",
            "src": "388:66:23",
            "constant": false,
            "mutability": "mutable",
            "name": "_sponsor",
            "nameLocation": "405:8:23",
            "scope": 27121,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 25625,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "388:7:23",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "arguments": [
                {
                  "arguments": [
                    {
                      "arguments": [
                        {
                          "hexValue": "73706f6e736f72",
                          "id": 25631,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "442:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_e80fb92299ed640261f22bb7d7b1b877eb589e85f26da49c85e89a10bc53fe07",
                            "typeString": "literal_string \"sponsor\""
                          },
                          "value": "sponsor"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_e80fb92299ed640261f22bb7d7b1b877eb589e85f26da49c85e89a10bc53fe07",
                            "typeString": "literal_string \"sponsor\""
                          }
                        ],
                        "id": 25630,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "432:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 25632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "432:20:23",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    ],
                    "id": 25629,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "424:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_bytes20_$",
                      "typeString": "type(bytes20)"
                    },
                    "typeName": {
                      "id": 25628,
                      "name": "bytes20",
                      "nodeType": "ElementaryTypeName",
                      "src": "424:7:23",
                      "typeDescriptions": {}
                    }
                  },
                  "id": 25633,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "424:29:23",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                ],
                "id": 25627,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "416:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": {
                  "id": 25626,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "416:7:23",
                  "typeDescriptions": {}
                }
              },
              "id": 25634,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "416:38:23",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 25646,
            "nodeType": "VariableDeclaration",
            "src": "460:72:23",
            "constant": false,
            "mutability": "mutable",
            "name": "_supervisor",
            "nameLocation": "477:11:23",
            "scope": 27121,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 25636,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "460:7:23",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "arguments": [
                {
                  "arguments": [
                    {
                      "arguments": [
                        {
                          "hexValue": "73757065727669736f72",
                          "id": 25642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "517:12:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_3445f4fe153b2c8b267ef6203c478ca3a552827af9bd48b96968bd29d800f5dc",
                            "typeString": "literal_string \"supervisor\""
                          },
                          "value": "supervisor"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_3445f4fe153b2c8b267ef6203c478ca3a552827af9bd48b96968bd29d800f5dc",
                            "typeString": "literal_string \"supervisor\""
                          }
                        ],
                        "id": 25641,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "507:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 25643,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "507:23:23",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    ],
                    "id": 25640,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "499:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_bytes20_$",
                      "typeString": "type(bytes20)"
                    },
                    "typeName": {
                      "id": 25639,
                      "name": "bytes20",
                      "nodeType": "ElementaryTypeName",
                      "src": "499:7:23",
                      "typeDescriptions": {}
                    }
                  },
                  "id": 25644,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "499:32:23",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                ],
                "id": 25638,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "491:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": {
                  "id": 25637,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "491:7:23",
                  "typeDescriptions": {}
                }
              },
              "id": 25645,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "491:41:23",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 25706,
            "nodeType": "FunctionDefinition",
            "src": "539:376:23",
            "body": {
              "id": 25705,
              "nodeType": "Block",
              "src": "563:352:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25652,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "582:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "7061727469636970616e74",
                        "id": 25653,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "596:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_89ac24e9d325e5935dd9098bddc7f9879a6b0e297f7e2423d271ca0fed835edb",
                          "typeString": "literal_string \"participant\""
                        },
                        "value": "participant"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_89ac24e9d325e5935dd9098bddc7f9879a6b0e297f7e2423d271ca0fed835edb",
                          "typeString": "literal_string \"participant\""
                        }
                      ],
                      "expression": {
                        "id": 25649,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "573:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25651,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "576:5:23",
                      "memberName": "label",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7746,
                      "src": "573:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory) external"
                      }
                    },
                    "id": 25654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "573:37:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25655,
                  "nodeType": "ExpressionStatement",
                  "src": "573:37:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25659,
                        "name": "_participant2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25624,
                        "src": "629:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "7061727469636970616e7432",
                        "id": 25660,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "644:14:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cdaeda3f1bd11c1ec375a3746d05b54634c58c25f5983416779d7a7c931f91e5",
                          "typeString": "literal_string \"participant2\""
                        },
                        "value": "participant2"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cdaeda3f1bd11c1ec375a3746d05b54634c58c25f5983416779d7a7c931f91e5",
                          "typeString": "literal_string \"participant2\""
                        }
                      ],
                      "expression": {
                        "id": 25656,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "620:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25658,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "623:5:23",
                      "memberName": "label",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7746,
                      "src": "620:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory) external"
                      }
                    },
                    "id": 25661,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "620:39:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25662,
                  "nodeType": "ExpressionStatement",
                  "src": "620:39:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25666,
                        "name": "_sponsor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25635,
                        "src": "678:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "73706f6e736f72",
                        "id": 25667,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "688:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e80fb92299ed640261f22bb7d7b1b877eb589e85f26da49c85e89a10bc53fe07",
                          "typeString": "literal_string \"sponsor\""
                        },
                        "value": "sponsor"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e80fb92299ed640261f22bb7d7b1b877eb589e85f26da49c85e89a10bc53fe07",
                          "typeString": "literal_string \"sponsor\""
                        }
                      ],
                      "expression": {
                        "id": 25663,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "669:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25665,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "672:5:23",
                      "memberName": "label",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7746,
                      "src": "669:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory) external"
                      }
                    },
                    "id": 25668,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "669:29:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25669,
                  "nodeType": "ExpressionStatement",
                  "src": "669:29:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25673,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "717:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "73757065727669736f72",
                        "id": 25674,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "730:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3445f4fe153b2c8b267ef6203c478ca3a552827af9bd48b96968bd29d800f5dc",
                          "typeString": "literal_string \"supervisor\""
                        },
                        "value": "supervisor"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3445f4fe153b2c8b267ef6203c478ca3a552827af9bd48b96968bd29d800f5dc",
                          "typeString": "literal_string \"supervisor\""
                        }
                      ],
                      "expression": {
                        "id": 25670,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "708:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25672,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "711:5:23",
                      "memberName": "label",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7746,
                      "src": "708:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory) external"
                      }
                    },
                    "id": 25675,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "708:35:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25676,
                  "nodeType": "ExpressionStatement",
                  "src": "708:35:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25680,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "762:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "313030",
                        "id": 25681,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "776:9:23",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        },
                        "value": "100"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        }
                      ],
                      "expression": {
                        "id": 25677,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "754:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25679,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "757:4:23",
                      "memberName": "deal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8067,
                      "src": "754:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 25682,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "754:32:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25683,
                  "nodeType": "ExpressionStatement",
                  "src": "754:32:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25687,
                        "name": "_participant2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25624,
                        "src": "804:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "313030",
                        "id": 25688,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "819:9:23",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        },
                        "value": "100"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        }
                      ],
                      "expression": {
                        "id": 25684,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "796:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25686,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "799:4:23",
                      "memberName": "deal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8067,
                      "src": "796:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 25689,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "796:33:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25690,
                  "nodeType": "ExpressionStatement",
                  "src": "796:33:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25694,
                        "name": "_sponsor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25635,
                        "src": "847:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "313030",
                        "id": 25695,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "857:9:23",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        },
                        "value": "100"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        }
                      ],
                      "expression": {
                        "id": 25691,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "839:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25693,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "842:4:23",
                      "memberName": "deal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8067,
                      "src": "839:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 25696,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "839:28:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25697,
                  "nodeType": "ExpressionStatement",
                  "src": "839:28:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25701,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "885:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "313030",
                        "id": 25702,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "898:9:23",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        },
                        "value": "100"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        }
                      ],
                      "expression": {
                        "id": 25698,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "877:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25700,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "880:4:23",
                      "memberName": "deal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8067,
                      "src": "877:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 25703,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "877:31:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25704,
                  "nodeType": "ExpressionStatement",
                  "src": "877:31:23"
                }
              ]
            },
            "functionSelector": "0a9254e4",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setUp",
            "nameLocation": "548:5:23",
            "parameters": {
              "id": 25647,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "553:2:23"
            },
            "returnParameters": {
              "id": 25648,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "563:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 25815,
            "nodeType": "FunctionDefinition",
            "src": "921:980:23",
            "body": {
              "id": 25814,
              "nodeType": "Block",
              "src": "1023:878:23",
              "statements": [
                {
                  "assignments": [
                    25716
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25716,
                      "mutability": "mutable",
                      "name": "supervisors",
                      "nameLocation": "1050:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 25814,
                      "src": "1033:28:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 25714,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1033:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 25715,
                        "nodeType": "ArrayTypeName",
                        "src": "1033:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25722,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 25720,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1078:1:23",
                        "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": 25719,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1064:13:23",
                      "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": 25717,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1068:7:23",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 25718,
                        "nodeType": "ArrayTypeName",
                        "src": "1068:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 25721,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1064:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1033:47:23"
                },
                {
                  "expression": {
                    "id": 25727,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 25723,
                        "name": "supervisors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25716,
                        "src": "1090:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 25725,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 25724,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1102:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1090:14:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 25726,
                      "name": "_supervisor",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25646,
                      "src": "1107:11:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1090:28:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 25728,
                  "nodeType": "ExpressionStatement",
                  "src": "1090:28:23"
                },
                {
                  "assignments": [
                    25733
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25733,
                      "mutability": "mutable",
                      "name": "unreturnedStakeBeneficiaries",
                      "nameLocation": "1146:28:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 25814,
                      "src": "1129:45:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 25731,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1129:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 25732,
                        "nodeType": "ArrayTypeName",
                        "src": "1129:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25739,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 25737,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1191:1:23",
                        "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": 25736,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1177:13:23",
                      "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": 25734,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1181:7:23",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 25735,
                        "nodeType": "ArrayTypeName",
                        "src": "1181:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 25738,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1177:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1129:64:23"
                },
                {
                  "expression": {
                    "id": 25752,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 25740,
                        "name": "unreturnedStakeBeneficiaries",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25733,
                        "src": "1203:28:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 25742,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 25741,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1232:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1203:31:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "hexValue": "5065707065727374616b6544414f",
                                  "id": 25748,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1276:16:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d23",
                                    "typeString": "literal_string \"PepperstakeDAO\""
                                  },
                                  "value": "PepperstakeDAO"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d23",
                                    "typeString": "literal_string \"PepperstakeDAO\""
                                  }
                                ],
                                "id": 25747,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -8,
                                "src": "1266:9:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes memory) pure returns (bytes32)"
                                }
                              },
                              "id": 25749,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1266:27:23",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 25746,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1258:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes20_$",
                              "typeString": "type(bytes20)"
                            },
                            "typeName": {
                              "id": 25745,
                              "name": "bytes20",
                              "nodeType": "ElementaryTypeName",
                              "src": "1258:7:23",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 25750,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1258:36:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        ],
                        "id": 25744,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "1237:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 25743,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1237:7:23",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 25751,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1237:67:23",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1203:101:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 25753,
                  "nodeType": "ExpressionStatement",
                  "src": "1203:101:23"
                },
                {
                  "assignments": [
                    25758
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25758,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "1332:12:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 25814,
                      "src": "1315:29:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 25756,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1315:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 25757,
                        "nodeType": "ArrayTypeName",
                        "src": "1315:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25764,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "32",
                        "id": 25762,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1361:1:23",
                        "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": 25761,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1347:13:23",
                      "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": 25759,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1351:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 25760,
                        "nodeType": "ArrayTypeName",
                        "src": "1351:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 25763,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1347:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1315:48:23"
                },
                {
                  "expression": {
                    "id": 25769,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 25765,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25758,
                        "src": "1373:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 25767,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 25766,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1386:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1373:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e3035",
                      "id": 25768,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1391:10:23",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_50000000000000000_by_1",
                        "typeString": "int_const 50000000000000000"
                      },
                      "value": "0.05"
                    },
                    "src": "1373:28:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 25770,
                  "nodeType": "ExpressionStatement",
                  "src": "1373:28:23"
                },
                {
                  "expression": {
                    "id": 25775,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 25771,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25758,
                        "src": "1411:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 25773,
                      "indexExpression": {
                        "hexValue": "31",
                        "id": 25772,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1424:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1411:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e35",
                      "id": 25774,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1429:9:23",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_500000000000000000_by_1",
                        "typeString": "int_const 500000000000000000"
                      },
                      "value": "0.5"
                    },
                    "src": "1411:27:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 25776,
                  "nodeType": "ExpressionStatement",
                  "src": "1411:27:23"
                },
                {
                  "assignments": [
                    25779
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25779,
                      "mutability": "mutable",
                      "name": "defaultLaunchData",
                      "nameLocation": "1478:17:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 25814,
                      "src": "1449:46:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 25778,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 25777,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "1449:21:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25582,
                          "src": "1449:21:23"
                        },
                        "referencedDeclaration": 25582,
                        "src": "1449:21:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25801,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 25781,
                        "name": "supervisors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25716,
                        "src": "1533:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 25785,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1572:1:23",
                            "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": 25784,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "1558:13:23",
                          "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": 25782,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1562:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 25783,
                            "nodeType": "ArrayTypeName",
                            "src": "1562:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 25786,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1558:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 25787,
                        "name": "unreturnedStakeBeneficiaries",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25733,
                        "src": "1588:28:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 25791,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1644:1:23",
                            "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": 25790,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "1630:13:23",
                          "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": 25788,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1634:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 25789,
                            "nodeType": "ArrayTypeName",
                            "src": "1634:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 25792,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1630:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 25793,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25758,
                        "src": "1660:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 25794,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1686:7:23",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "hexValue": "313030",
                        "id": 25795,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1707:3:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        "value": "100"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 25796,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1724:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 25797,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1743:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 25798,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1762:4:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "",
                        "id": 25799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1780:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 25780,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25582,
                      "src": "1498:21:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$25582_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 25800,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1498:294:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1449:343:23"
                },
                {
                  "assignments": [
                    25804
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25804,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "1815:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 25814,
                      "src": "1803:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 25803,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 25802,
                          "name": "PepperStake",
                          "nameLocations": [
                            "1803:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "1803:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "1803:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25811,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 25808,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1845:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 25809,
                        "name": "defaultLaunchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25779,
                        "src": "1848:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      ],
                      "id": 25807,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1829:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$25582_memory_ptr_$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory) payable returns (contract PepperStake)"
                      },
                      "typeName": {
                        "id": 25806,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 25805,
                          "name": "PepperStake",
                          "nameLocations": [
                            "1833:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "1833:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "1833:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      }
                    },
                    "id": 25810,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1829:37:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1803:63:23"
                },
                {
                  "expression": {
                    "id": 25812,
                    "name": "pepperStake",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 25804,
                    "src": "1883:11:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "functionReturnParameters": 25711,
                  "id": 25813,
                  "nodeType": "Return",
                  "src": "1876:18:23"
                }
              ]
            },
            "functionSelector": "7b5340cd",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializePepperstakeContractWithDefaults",
            "nameLocation": "930:41:23",
            "parameters": {
              "id": 25707,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "971:2:23"
            },
            "returnParameters": {
              "id": 25711,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25710,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 25815,
                  "src": "1006:11:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_PepperStake_$25401",
                    "typeString": "contract PepperStake"
                  },
                  "typeName": {
                    "id": 25709,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25708,
                      "name": "PepperStake",
                      "nameLocations": [
                        "1006:11:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 25401,
                      "src": "1006:11:23"
                    },
                    "referencedDeclaration": 25401,
                    "src": "1006:11:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1005:13:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 25867,
            "nodeType": "FunctionDefinition",
            "src": "1907:382:23",
            "body": {
              "id": 25866,
              "nodeType": "Block",
              "src": "1935:354:23",
              "statements": [
                {
                  "assignments": [
                    25820
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25820,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "1957:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 25866,
                      "src": "1945:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 25819,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 25818,
                          "name": "PepperStake",
                          "nameLocations": [
                            "1945:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "1945:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "1945:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25823,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 25821,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "1971:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 25822,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1971:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1945:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25827,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "2033:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 25824,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "2024:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25826,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2027:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "2024:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 25828,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2024:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25829,
                  "nodeType": "ExpressionStatement",
                  "src": "2024:22:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 25830,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25820,
                          "src": "2056:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 25832,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2068:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "2056:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 25834,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 25833,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2081:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "2056:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 25835,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2056:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25836,
                  "nodeType": "ExpressionStatement",
                  "src": "2056:38:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 25842,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 25838,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25820,
                              "src": "2111:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 25839,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2123:17:23",
                            "memberName": "PARTICIPANT_COUNT",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24824,
                            "src": "2111:29:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 25840,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2111:31:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 25841,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2146:1:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "2111:36:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 25837,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "2104:6:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 25843,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2104:44:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25844,
                  "nodeType": "ExpressionStatement",
                  "src": "2104:44:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25848,
                        "name": "_participant2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25624,
                        "src": "2167:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 25845,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "2158:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25847,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2161:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "2158:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 25849,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2158:23:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25850,
                  "nodeType": "ExpressionStatement",
                  "src": "2158:23:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 25851,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25820,
                          "src": "2191:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 25853,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2203:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "2191:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 25855,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e35",
                          "id": 25854,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2216:9:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_500000000000000000_by_1",
                            "typeString": "int_const 500000000000000000"
                          },
                          "value": "0.5"
                        }
                      ],
                      "src": "2191:35:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 25856,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2191:37:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25857,
                  "nodeType": "ExpressionStatement",
                  "src": "2191:37:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 25863,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 25859,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25820,
                              "src": "2245:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 25860,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2257:17:23",
                            "memberName": "PARTICIPANT_COUNT",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24824,
                            "src": "2245:29:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 25861,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2245:31:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "32",
                          "id": 25862,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2280:1:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2_by_1",
                            "typeString": "int_const 2"
                          },
                          "value": "2"
                        },
                        "src": "2245:36:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 25858,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "2238:6:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 25864,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2238:44:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25865,
                  "nodeType": "ExpressionStatement",
                  "src": "2238:44:23"
                }
              ]
            },
            "functionSelector": "3a1143da",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testStake",
            "nameLocation": "1916:9:23",
            "parameters": {
              "id": 25816,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1925:2:23"
            },
            "returnParameters": {
              "id": 25817,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1935:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 25901,
            "nodeType": "FunctionDefinition",
            "src": "2295:325:23",
            "body": {
              "id": 25900,
              "nodeType": "Block",
              "src": "2338:282:23",
              "statements": [
                {
                  "assignments": [
                    25872
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25872,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "2360:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 25900,
                      "src": "2348:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 25871,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 25870,
                          "name": "PepperStake",
                          "nameLocations": [
                            "2348:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "2348:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "2348:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25875,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 25873,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "2374:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 25874,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2374:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2348:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25879,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "2436:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 25876,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "2427:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25878,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2430:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "2427:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 25880,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2427:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25881,
                  "nodeType": "ExpressionStatement",
                  "src": "2427:22:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 25887,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "2511:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 25888,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2523:22:23",
                              "memberName": "INCORRECT_STAKE_AMOUNT",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24500,
                              "src": "2511:34:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 25889,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2546:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "2511:43:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 25885,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "2488:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 25886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "2492:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "2488:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 25890,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2488:67:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 25882,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "2459:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25884,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2462:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "2459:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 25891,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2459:106:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25892,
                  "nodeType": "ExpressionStatement",
                  "src": "2459:106:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 25893,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25872,
                          "src": "2575:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 25895,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2587:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "2575:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 25897,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3034",
                          "id": 25896,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2600:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_40000000000000000_by_1",
                            "typeString": "int_const 40000000000000000"
                          },
                          "value": "0.04"
                        }
                      ],
                      "src": "2575:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 25898,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2575:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25899,
                  "nodeType": "ExpressionStatement",
                  "src": "2575:38:23"
                }
              ]
            },
            "functionSelector": "3a1a8594",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testStakeIncorrectAmount",
            "nameLocation": "2304:24:23",
            "parameters": {
              "id": 25868,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2328:2:23"
            },
            "returnParameters": {
              "id": 25869,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2338:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 25942,
            "nodeType": "FunctionDefinition",
            "src": "2626:382:23",
            "body": {
              "id": 25941,
              "nodeType": "Block",
              "src": "2674:334:23",
              "statements": [
                {
                  "assignments": [
                    25906
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25906,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "2696:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 25941,
                      "src": "2684:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 25905,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 25904,
                          "name": "PepperStake",
                          "nameLocations": [
                            "2684:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "2684:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "2684:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25909,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 25907,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "2710:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 25908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2710:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2684:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25913,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "2777:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 25910,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "2763:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25912,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2766:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "2763:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 25914,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2763:27:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25915,
                  "nodeType": "ExpressionStatement",
                  "src": "2763:27:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 25916,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25906,
                          "src": "2800:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 25918,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2812:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "2800:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 25920,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 25919,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2825:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "2800:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 25921,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2800:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25922,
                  "nodeType": "ExpressionStatement",
                  "src": "2800:38:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 25928,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "2900:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 25929,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2912:21:23",
                              "memberName": "ALREADY_PARTICIPATING",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24502,
                              "src": "2900:33:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 25930,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2934:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "2900:42:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 25926,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "2877:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 25927,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "2881:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "2877:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 25931,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2877:66:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 25923,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "2848:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 25925,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2851:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "2848:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 25932,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2848:105:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25933,
                  "nodeType": "ExpressionStatement",
                  "src": "2848:105:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 25934,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25906,
                          "src": "2963:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 25936,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2975:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "2963:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 25938,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 25937,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2988:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "2963:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 25939,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2963:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25940,
                  "nodeType": "ExpressionStatement",
                  "src": "2963:38:23"
                }
              ]
            },
            "functionSelector": "523a6ee8",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testStakeAlreadyParticipating",
            "nameLocation": "2635:29:23",
            "parameters": {
              "id": 25902,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2664:2:23"
            },
            "returnParameters": {
              "id": 25903,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2674:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26030,
            "nodeType": "FunctionDefinition",
            "src": "3014:791:23",
            "body": {
              "id": 26029,
              "nodeType": "Block",
              "src": "3064:741:23",
              "statements": [
                {
                  "assignments": [
                    25949
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25949,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "3091:12:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26029,
                      "src": "3074:29:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 25947,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3074:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 25948,
                        "nodeType": "ArrayTypeName",
                        "src": "3074:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25955,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 25953,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3120:1:23",
                        "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": 25952,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "3106:13:23",
                      "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": 25950,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3110:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 25951,
                        "nodeType": "ArrayTypeName",
                        "src": "3110:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 25954,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3106:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3074:48:23"
                },
                {
                  "expression": {
                    "id": 25960,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 25956,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25949,
                        "src": "3132:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 25958,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 25957,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3145:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3132:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e3035",
                      "id": 25959,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3150:10:23",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_50000000000000000_by_1",
                        "typeString": "int_const 50000000000000000"
                      },
                      "value": "0.05"
                    },
                    "src": "3132:28:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 25961,
                  "nodeType": "ExpressionStatement",
                  "src": "3132:28:23"
                },
                {
                  "assignments": [
                    25964
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25964,
                      "mutability": "mutable",
                      "name": "launchData",
                      "nameLocation": "3199:10:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26029,
                      "src": "3170:39:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 25963,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 25962,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "3170:21:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25582,
                          "src": "3170:21:23"
                        },
                        "referencedDeclaration": 25582,
                        "src": "3170:21:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25994,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 25969,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3261:1:23",
                            "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": 25968,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "3247:13:23",
                          "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": 25966,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "3251:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 25967,
                            "nodeType": "ArrayTypeName",
                            "src": "3251:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 25970,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3247:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 25974,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3291:1:23",
                            "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": 25973,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "3277:13:23",
                          "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": 25971,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "3281:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 25972,
                            "nodeType": "ArrayTypeName",
                            "src": "3281:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 25975,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3277:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 25979,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3321:1:23",
                            "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": 25978,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "3307:13:23",
                          "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": 25976,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "3311:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 25977,
                            "nodeType": "ArrayTypeName",
                            "src": "3311:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 25980,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3307:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 25984,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3351:1:23",
                            "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": 25983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "3337:13:23",
                          "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": 25981,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "3341:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 25982,
                            "nodeType": "ArrayTypeName",
                            "src": "3341:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 25985,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3337:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 25986,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25949,
                        "src": "3367:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 25987,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3393:7:23",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "hexValue": "30",
                        "id": 25988,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3414:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 25989,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3429:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 25990,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3448:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 25991,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3467:4:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "",
                        "id": 25992,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3485:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 25965,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25582,
                      "src": "3212:21:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$25582_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 25993,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3212:285:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3170:327:23"
                },
                {
                  "assignments": [
                    25997
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25997,
                      "mutability": "mutable",
                      "name": "pepperStake2",
                      "nameLocation": "3519:12:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26029,
                      "src": "3507:24:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 25996,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 25995,
                          "name": "PepperStake",
                          "nameLocations": [
                            "3507:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "3507:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "3507:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26004,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26001,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3550:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 26002,
                        "name": "launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25964,
                        "src": "3553:10:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      ],
                      "id": 26000,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "3534:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$25582_memory_ptr_$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory) payable returns (contract PepperStake)"
                      },
                      "typeName": {
                        "id": 25999,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 25998,
                          "name": "PepperStake",
                          "nameLocations": [
                            "3538:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "3538:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "3538:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      }
                    },
                    "id": 26003,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3534:30:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3507:57:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26008,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "3588:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26005,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "3574:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26007,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3577:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "3574:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26009,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3574:27:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26010,
                  "nodeType": "ExpressionStatement",
                  "src": "3574:27:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 26016,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "3680:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 26017,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "3692:24:23",
                              "memberName": "MAX_PARTICIPANTS_REACHED",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24496,
                              "src": "3680:36:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 26018,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3717:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "3680:45:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 26014,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "3640:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 26015,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "3644:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "3640:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 26019,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3640:99:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 26011,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "3611:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26013,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3614:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "3611:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 26020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3611:138:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26021,
                  "nodeType": "ExpressionStatement",
                  "src": "3611:138:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26022,
                          "name": "pepperStake2",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25997,
                          "src": "3759:12:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26024,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3772:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "3759:18:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26026,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26025,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3785:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "3759:37:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26027,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3759:39:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26028,
                  "nodeType": "ExpressionStatement",
                  "src": "3759:39:23"
                }
              ]
            },
            "functionSelector": "281fef2f",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testStakeMaxParticipantsReached",
            "nameLocation": "3023:31:23",
            "parameters": {
              "id": 25943,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3054:2:23"
            },
            "returnParameters": {
              "id": 25944,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3064:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26145,
            "nodeType": "FunctionDefinition",
            "src": "3811:975:23",
            "body": {
              "id": 26144,
              "nodeType": "Block",
              "src": "3854:932:23",
              "statements": [
                {
                  "assignments": [
                    26037
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26037,
                      "mutability": "mutable",
                      "name": "participantAllowList",
                      "nameLocation": "3881:20:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26144,
                      "src": "3864:37:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 26035,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3864:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26036,
                        "nodeType": "ArrayTypeName",
                        "src": "3864:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26043,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3918:1:23",
                        "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": 26040,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "3904:13:23",
                      "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": 26038,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3908:7:23",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26039,
                        "nodeType": "ArrayTypeName",
                        "src": "3908:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 26042,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3904:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3864:56:23"
                },
                {
                  "expression": {
                    "id": 26048,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26044,
                        "name": "participantAllowList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26037,
                        "src": "3930:20:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 26046,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 26045,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3951:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3930:23:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26047,
                      "name": "_participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25613,
                      "src": "3956:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "3930:38:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26049,
                  "nodeType": "ExpressionStatement",
                  "src": "3930:38:23"
                },
                {
                  "assignments": [
                    26054
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26054,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "3996:12:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26144,
                      "src": "3979:29:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 26052,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3979:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 26053,
                        "nodeType": "ArrayTypeName",
                        "src": "3979:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26060,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26058,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4025:1:23",
                        "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": 26057,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "4011:13:23",
                      "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": 26055,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4015:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 26056,
                        "nodeType": "ArrayTypeName",
                        "src": "4015:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 26059,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4011:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3979:48:23"
                },
                {
                  "expression": {
                    "id": 26065,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26061,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26054,
                        "src": "4037:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 26063,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 26062,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4050:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4037:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e3035",
                      "id": 26064,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4055:10:23",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_50000000000000000_by_1",
                        "typeString": "int_const 50000000000000000"
                      },
                      "value": "0.05"
                    },
                    "src": "4037:28:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26066,
                  "nodeType": "ExpressionStatement",
                  "src": "4037:28:23"
                },
                {
                  "assignments": [
                    26069
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26069,
                      "mutability": "mutable",
                      "name": "launchData",
                      "nameLocation": "4105:10:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26144,
                      "src": "4076:39:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 26068,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26067,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "4076:21:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25582,
                          "src": "4076:21:23"
                        },
                        "referencedDeclaration": 25582,
                        "src": "4076:21:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26096,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 26074,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4167:1:23",
                            "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": 26073,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "4153:13:23",
                          "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": 26071,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "4157:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 26072,
                            "nodeType": "ArrayTypeName",
                            "src": "4157:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 26075,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4153:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 26076,
                        "name": "participantAllowList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26037,
                        "src": "4183:20:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 26080,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4231:1:23",
                            "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": 26079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "4217:13:23",
                          "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": 26077,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "4221:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 26078,
                            "nodeType": "ArrayTypeName",
                            "src": "4221:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 26081,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4217:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 26085,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4261:1:23",
                            "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": 26084,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "4247:13:23",
                          "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": 26082,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "4251:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 26083,
                            "nodeType": "ArrayTypeName",
                            "src": "4251:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 26086,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4247:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 26087,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26054,
                        "src": "4277:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 26088,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4303:7:23",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "expression": {
                          "id": 26089,
                          "name": "participantAllowList",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26037,
                          "src": "4324:20:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          }
                        },
                        "id": 26090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4345:6:23",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "4324:27:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "74727565",
                        "id": 26091,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4365:4:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 26092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4383:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 26093,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4402:4:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "",
                        "id": 26094,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4420:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 26070,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25582,
                      "src": "4118:21:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$25582_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 26095,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4118:314:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4076:356:23"
                },
                {
                  "assignments": [
                    26099
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26099,
                      "mutability": "mutable",
                      "name": "pepperStake3",
                      "nameLocation": "4454:12:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26144,
                      "src": "4442:24:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26098,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26097,
                          "name": "PepperStake",
                          "nameLocations": [
                            "4442:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "4442:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "4442:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26106,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26103,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4485:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 26104,
                        "name": "launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26069,
                        "src": "4488:10:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      ],
                      "id": 26102,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "4469:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$25582_memory_ptr_$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory) payable returns (contract PepperStake)"
                      },
                      "typeName": {
                        "id": 26101,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26100,
                          "name": "PepperStake",
                          "nameLocations": [
                            "4473:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "4473:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "4473:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      }
                    },
                    "id": 26105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4469:30:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4442:57:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26110,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "4518:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26107,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "4509:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26109,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4512:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "4509:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26111,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4509:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26112,
                  "nodeType": "ExpressionStatement",
                  "src": "4509:22:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26113,
                          "name": "pepperStake3",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26099,
                          "src": "4541:12:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26115,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4554:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "4541:18:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26117,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26116,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4567:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "4541:37:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26118,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4541:39:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26119,
                  "nodeType": "ExpressionStatement",
                  "src": "4541:39:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26123,
                        "name": "_participant2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25624,
                        "src": "4599:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26120,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "4590:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26122,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4593:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "4590:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26124,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4590:23:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26125,
                  "nodeType": "ExpressionStatement",
                  "src": "4590:23:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 26131,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "4675:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 26132,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4687:23:23",
                              "memberName": "PARTICIPANT_NOT_ALLOWED",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24498,
                              "src": "4675:35:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 26133,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4711:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "4675:44:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 26129,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "4652:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 26130,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "4656:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "4652:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 26134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4652:68:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 26126,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "4623:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4626:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "4623:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 26135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4623:107:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26136,
                  "nodeType": "ExpressionStatement",
                  "src": "4623:107:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26137,
                          "name": "pepperStake3",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26099,
                          "src": "4740:12:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26139,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4753:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "4740:18:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26141,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26140,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4766:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "4740:37:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26142,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4740:39:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26143,
                  "nodeType": "ExpressionStatement",
                  "src": "4740:39:23"
                }
              ]
            },
            "functionSelector": "1fc168ee",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testParticipantAllowList",
            "nameLocation": "3820:24:23",
            "parameters": {
              "id": 26031,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3844:2:23"
            },
            "returnParameters": {
              "id": 26032,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3854:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26185,
            "nodeType": "FunctionDefinition",
            "src": "4792:357:23",
            "body": {
              "id": 26184,
              "nodeType": "Block",
              "src": "4836:313:23",
              "statements": [
                {
                  "assignments": [
                    26150
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26150,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "4858:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26184,
                      "src": "4846:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26149,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26148,
                          "name": "PepperStake",
                          "nameLocations": [
                            "4846:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "4846:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "4846:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26153,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26151,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "4872:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26152,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4872:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4846:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "3135",
                        "id": 26157,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4933:7:23",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        },
                        "value": "15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        }
                      ],
                      "expression": {
                        "id": 26154,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "4925:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26156,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4928:4:23",
                      "memberName": "warp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7997,
                      "src": "4925:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 26158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4925:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26159,
                  "nodeType": "ExpressionStatement",
                  "src": "4925:16:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26163,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "4965:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26160,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "4951:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26162,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4954:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "4951:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26164,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4951:27:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26165,
                  "nodeType": "ExpressionStatement",
                  "src": "4951:27:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 26171,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "5040:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 26172,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5052:22:23",
                              "memberName": "COMPLETION_WINDOW_OVER",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24504,
                              "src": "5040:34:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 26173,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5075:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "5040:43:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 26169,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "5017:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 26170,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "5021:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "5017:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 26174,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5017:67:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 26166,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "4988:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26168,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4991:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "4988:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 26175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4988:106:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26176,
                  "nodeType": "ExpressionStatement",
                  "src": "4988:106:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26177,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26150,
                          "src": "5104:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26179,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5116:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "5104:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26181,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26180,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5129:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "5104:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5104:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26183,
                  "nodeType": "ExpressionStatement",
                  "src": "5104:38:23"
                }
              ]
            },
            "functionSelector": "e608f5bf",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testStakeReturnWindowOver",
            "nameLocation": "4801:25:23",
            "parameters": {
              "id": 26146,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4826:2:23"
            },
            "returnParameters": {
              "id": 26147,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4836:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26231,
            "nodeType": "FunctionDefinition",
            "src": "5155:392:23",
            "body": {
              "id": 26230,
              "nodeType": "Block",
              "src": "5185:362:23",
              "statements": [
                {
                  "assignments": [
                    26190
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26190,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "5207:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26230,
                      "src": "5195:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26189,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26188,
                          "name": "PepperStake",
                          "nameLocations": [
                            "5195:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "5195:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "5195:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26193,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26191,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "5221:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5221:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5195:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26197,
                        "name": "_sponsor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25635,
                        "src": "5288:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26194,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "5274:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26196,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5277:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "5274:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26198,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5274:23:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26199,
                  "nodeType": "ExpressionStatement",
                  "src": "5274:23:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26200,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26190,
                          "src": "5307:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26202,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5319:7:23",
                        "memberName": "sponsor",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24949,
                        "src": "5307:19:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26204,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26203,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5334:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "5307:38:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5307:40:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26206,
                  "nodeType": "ExpressionStatement",
                  "src": "5307:40:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 26212,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 26208,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26190,
                              "src": "5364:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 26209,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5376:26:23",
                            "memberName": "TOTAL_SPONSOR_CONTRIBUTION",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24816,
                            "src": "5364:38:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 26210,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5364:40:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "302e3035",
                          "id": 26211,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5408:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        },
                        "src": "5364:54:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 26207,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "5357:6:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 26213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5357:62:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26214,
                  "nodeType": "ExpressionStatement",
                  "src": "5357:62:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26215,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26190,
                          "src": "5429:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26217,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5441:7:23",
                        "memberName": "sponsor",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24949,
                        "src": "5429:19:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26219,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26218,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5456:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "5429:38:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26220,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5429:40:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26221,
                  "nodeType": "ExpressionStatement",
                  "src": "5429:40:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 26227,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 26223,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26190,
                              "src": "5486:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 26224,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5498:26:23",
                            "memberName": "TOTAL_SPONSOR_CONTRIBUTION",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24816,
                            "src": "5486:38:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 26225,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5486:40:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "302e31",
                          "id": 26226,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5530:9:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_100000000000000000_by_1",
                            "typeString": "int_const 100000000000000000"
                          },
                          "value": "0.1"
                        },
                        "src": "5486:53:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 26222,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "5479:6:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 26228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5479:61:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26229,
                  "nodeType": "ExpressionStatement",
                  "src": "5479:61:23"
                }
              ]
            },
            "functionSelector": "0d930ecd",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testSponsor",
            "nameLocation": "5164:11:23",
            "parameters": {
              "id": 26186,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5175:2:23"
            },
            "returnParameters": {
              "id": 26187,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5185:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26271,
            "nodeType": "FunctionDefinition",
            "src": "5553:357:23",
            "body": {
              "id": 26270,
              "nodeType": "Block",
              "src": "5599:311:23",
              "statements": [
                {
                  "assignments": [
                    26236
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26236,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "5621:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26270,
                      "src": "5609:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26235,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26234,
                          "name": "PepperStake",
                          "nameLocations": [
                            "5609:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "5609:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "5609:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26239,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26237,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "5635:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5635:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5609:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "3135",
                        "id": 26243,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5696:7:23",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        },
                        "value": "15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        }
                      ],
                      "expression": {
                        "id": 26240,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "5688:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26242,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5691:4:23",
                      "memberName": "warp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7997,
                      "src": "5688:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 26244,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5688:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26245,
                  "nodeType": "ExpressionStatement",
                  "src": "5688:16:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26249,
                        "name": "_sponsor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25635,
                        "src": "5728:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26246,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "5714:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26248,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5717:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "5714:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5714:23:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26251,
                  "nodeType": "ExpressionStatement",
                  "src": "5714:23:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 26257,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "5799:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 26258,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5811:22:23",
                              "memberName": "COMPLETION_WINDOW_OVER",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24504,
                              "src": "5799:34:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 26259,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5834:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "5799:43:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 26255,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "5776:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 26256,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "5780:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "5776:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 26260,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5776:67:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 26252,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "5747:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26254,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5750:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "5747:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 26261,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5747:106:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26262,
                  "nodeType": "ExpressionStatement",
                  "src": "5747:106:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26263,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26236,
                          "src": "5863:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26265,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5875:7:23",
                        "memberName": "sponsor",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24949,
                        "src": "5863:19:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26267,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26266,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5890:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "5863:38:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26268,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5863:40:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26269,
                  "nodeType": "ExpressionStatement",
                  "src": "5863:40:23"
                }
              ]
            },
            "functionSelector": "7d28054b",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testSponsorReturnWindowOver",
            "nameLocation": "5562:27:23",
            "parameters": {
              "id": 26232,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5589:2:23"
            },
            "returnParameters": {
              "id": 26233,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5599:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26331,
            "nodeType": "FunctionDefinition",
            "src": "5916:502:23",
            "body": {
              "id": 26330,
              "nodeType": "Block",
              "src": "5961:457:23",
              "statements": [
                {
                  "assignments": [
                    26276
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26276,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "5983:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26330,
                      "src": "5971:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26275,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26274,
                          "name": "PepperStake",
                          "nameLocations": [
                            "5971:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "5971:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "5971:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26279,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26277,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "5997:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26278,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5997:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5971:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26283,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "6059:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26280,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "6050:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26282,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6053:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "6050:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26284,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6050:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26285,
                  "nodeType": "ExpressionStatement",
                  "src": "6050:22:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26286,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26276,
                          "src": "6082:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26288,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6094:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "6082:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26290,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26289,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6107:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "6082:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26291,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6082:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26292,
                  "nodeType": "ExpressionStatement",
                  "src": "6082:38:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26296,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "6139:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26293,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "6130:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26295,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6133:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "6130:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6130:21:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26298,
                  "nodeType": "ExpressionStatement",
                  "src": "6130:21:23"
                },
                {
                  "assignments": [
                    26303
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26303,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "6178:25:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26330,
                      "src": "6161:42:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 26301,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "6161:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26302,
                        "nodeType": "ArrayTypeName",
                        "src": "6161:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26309,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26307,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6220:1:23",
                        "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": 26306,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "6206:13:23",
                      "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": 26304,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "6210:7:23",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26305,
                        "nodeType": "ArrayTypeName",
                        "src": "6210:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 26308,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6206:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6161:61:23"
                },
                {
                  "expression": {
                    "id": 26314,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26310,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26303,
                        "src": "6232:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 26312,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 26311,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6258:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6232:28:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26313,
                      "name": "_participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25613,
                      "src": "6263:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "6232:43:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26315,
                  "nodeType": "ExpressionStatement",
                  "src": "6232:43:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26319,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26303,
                        "src": "6320:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 26316,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26276,
                        "src": "6285:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26318,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6297:22:23",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25030,
                      "src": "6285:34:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 26320,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6285:61:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26321,
                  "nodeType": "ExpressionStatement",
                  "src": "6285:61:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 26327,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 26323,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26276,
                              "src": "6363:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 26324,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6375:28:23",
                            "memberName": "COMPLETING_PARTICIPANT_COUNT",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24832,
                            "src": "6363:40:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 26325,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6363:42:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 26326,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6409:1:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "6363:47:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 26322,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "6356:6:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 26328,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6356:55:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26329,
                  "nodeType": "ExpressionStatement",
                  "src": "6356:55:23"
                }
              ]
            },
            "functionSelector": "0bb3f8f1",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testApproveForParticipants",
            "nameLocation": "5925:26:23",
            "parameters": {
              "id": 26272,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5951:2:23"
            },
            "returnParameters": {
              "id": 26273,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5961:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26381,
            "nodeType": "FunctionDefinition",
            "src": "6424:509:23",
            "body": {
              "id": 26380,
              "nodeType": "Block",
              "src": "6473:460:23",
              "statements": [
                {
                  "assignments": [
                    26336
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26336,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "6495:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26380,
                      "src": "6483:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26335,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26334,
                          "name": "PepperStake",
                          "nameLocations": [
                            "6483:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "6483:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "6483:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26339,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26337,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "6509:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26338,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6509:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6483:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26343,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "6576:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26340,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "6562:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26342,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6565:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "6562:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26344,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6562:27:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26345,
                  "nodeType": "ExpressionStatement",
                  "src": "6562:27:23"
                },
                {
                  "assignments": [
                    26350
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26350,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "6616:25:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26380,
                      "src": "6599:42:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 26348,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "6599:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26349,
                        "nodeType": "ArrayTypeName",
                        "src": "6599:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26356,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26354,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6658:1:23",
                        "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": 26353,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "6644:13:23",
                      "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": 26351,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "6648:7:23",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26352,
                        "nodeType": "ArrayTypeName",
                        "src": "6648:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 26355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6644:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6599:61:23"
                },
                {
                  "expression": {
                    "id": 26361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26357,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26350,
                        "src": "6670:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 26359,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 26358,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6696:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6670:28:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26360,
                      "name": "_participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25613,
                      "src": "6701:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "6670:43:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26362,
                  "nodeType": "ExpressionStatement",
                  "src": "6670:43:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 26368,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "6792:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 26369,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "6804:29:23",
                              "memberName": "PARTICIPANT_HAS_NOT_COMPLETED",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24520,
                              "src": "6792:41:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 26370,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6834:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "6792:50:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 26366,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "6752:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 26367,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "6756:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "6752:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 26371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6752:104:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 26363,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "6723:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26365,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6726:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "6723:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 26372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6723:143:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26373,
                  "nodeType": "ExpressionStatement",
                  "src": "6723:143:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26377,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26350,
                        "src": "6900:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 26374,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26336,
                        "src": "6876:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26376,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6888:11:23",
                      "memberName": "returnStake",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25128,
                      "src": "6876:23:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 26378,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6876:50:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26379,
                  "nodeType": "ExpressionStatement",
                  "src": "6876:50:23"
                }
              ]
            },
            "functionSelector": "4f9f4a07",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testParticipantHasNotCompleted",
            "nameLocation": "6433:30:23",
            "parameters": {
              "id": 26332,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6463:2:23"
            },
            "returnParameters": {
              "id": 26333,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6473:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26450,
            "nodeType": "FunctionDefinition",
            "src": "6939:579:23",
            "body": {
              "id": 26449,
              "nodeType": "Block",
              "src": "6979:539:23",
              "statements": [
                {
                  "assignments": [
                    26386
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26386,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "7001:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26449,
                      "src": "6989:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26385,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26384,
                          "name": "PepperStake",
                          "nameLocations": [
                            "6989:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "6989:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "6989:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26389,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26387,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "7015:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26388,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7015:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6989:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26393,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "7077:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26390,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7068:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26392,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7071:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "7068:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26394,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7068:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26395,
                  "nodeType": "ExpressionStatement",
                  "src": "7068:22:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26396,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26386,
                          "src": "7100:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26398,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7112:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "7100:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26400,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26399,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7125:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "7100:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26401,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7100:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26402,
                  "nodeType": "ExpressionStatement",
                  "src": "7100:38:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "3135",
                        "id": 26406,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7156:7:23",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        },
                        "value": "15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        }
                      ],
                      "expression": {
                        "id": 26403,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7148:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26405,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7151:4:23",
                      "memberName": "warp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7997,
                      "src": "7148:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 26407,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7148:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26408,
                  "nodeType": "ExpressionStatement",
                  "src": "7148:16:23"
                },
                {
                  "assignments": [
                    26413
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26413,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "7191:25:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26449,
                      "src": "7174:42:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 26411,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "7174:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26412,
                        "nodeType": "ArrayTypeName",
                        "src": "7174:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26419,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26417,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7233:1:23",
                        "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": 26416,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "7219:13:23",
                      "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": 26414,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "7223:7:23",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26415,
                        "nodeType": "ArrayTypeName",
                        "src": "7223:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 26418,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7219:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7174:61:23"
                },
                {
                  "expression": {
                    "id": 26424,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26420,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26413,
                        "src": "7245:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 26422,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 26421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7271:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7245:28:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26423,
                      "name": "_participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25613,
                      "src": "7276:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "7245:43:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26425,
                  "nodeType": "ExpressionStatement",
                  "src": "7245:43:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26429,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "7312:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26426,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7298:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26428,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7301:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "7298:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26430,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7298:26:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26431,
                  "nodeType": "ExpressionStatement",
                  "src": "7298:26:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 26437,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "7386:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 26438,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7398:22:23",
                              "memberName": "COMPLETION_WINDOW_OVER",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24504,
                              "src": "7386:34:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 26439,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "7421:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "7386:43:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 26435,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "7363:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 26436,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "7367:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "7363:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 26440,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7363:67:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 26432,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7334:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26434,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7337:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "7334:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 26441,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7334:106:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26442,
                  "nodeType": "ExpressionStatement",
                  "src": "7334:106:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26446,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26413,
                        "src": "7485:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 26443,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26386,
                        "src": "7450:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26445,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7462:22:23",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25030,
                      "src": "7450:34:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 26447,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7450:61:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26448,
                  "nodeType": "ExpressionStatement",
                  "src": "7450:61:23"
                }
              ]
            },
            "functionSelector": "51e79748",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testApproveWindowOver",
            "nameLocation": "6948:21:23",
            "parameters": {
              "id": 26382,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6969:2:23"
            },
            "returnParameters": {
              "id": 26383,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6979:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26521,
            "nodeType": "FunctionDefinition",
            "src": "7524:584:23",
            "body": {
              "id": 26520,
              "nodeType": "Block",
              "src": "7572:536:23",
              "statements": [
                {
                  "assignments": [
                    26455
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26455,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "7594:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26520,
                      "src": "7582:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26454,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26453,
                          "name": "PepperStake",
                          "nameLocations": [
                            "7582:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "7582:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "7582:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26458,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26456,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "7608:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26457,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7608:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7582:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26462,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "7670:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26459,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7661:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26461,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7664:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "7661:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7661:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26464,
                  "nodeType": "ExpressionStatement",
                  "src": "7661:22:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26465,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26455,
                          "src": "7693:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26467,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7705:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "7693:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26469,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26468,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7718:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "7693:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7693:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26471,
                  "nodeType": "ExpressionStatement",
                  "src": "7693:38:23"
                },
                {
                  "assignments": [
                    26476
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26476,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "7758:25:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26520,
                      "src": "7741:42:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 26474,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "7741:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26475,
                        "nodeType": "ArrayTypeName",
                        "src": "7741:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26482,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26480,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7800:1:23",
                        "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": 26479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "7786:13:23",
                      "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": 26477,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "7790:7:23",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26478,
                        "nodeType": "ArrayTypeName",
                        "src": "7790:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 26481,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7786:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7741:61:23"
                },
                {
                  "expression": {
                    "id": 26495,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26483,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26476,
                        "src": "7812:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 26485,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 26484,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7838:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7812:28:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "hexValue": "696e76616c6964",
                                  "id": 26491,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7869:9:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_ffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac68",
                                    "typeString": "literal_string \"invalid\""
                                  },
                                  "value": "invalid"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_ffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac68",
                                    "typeString": "literal_string \"invalid\""
                                  }
                                ],
                                "id": 26490,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -8,
                                "src": "7859:9:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes memory) pure returns (bytes32)"
                                }
                              },
                              "id": 26492,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7859:20:23",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 26489,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "7851:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes20_$",
                              "typeString": "type(bytes20)"
                            },
                            "typeName": {
                              "id": 26488,
                              "name": "bytes20",
                              "nodeType": "ElementaryTypeName",
                              "src": "7851:7:23",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 26493,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7851:29:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        ],
                        "id": 26487,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "7843:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 26486,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "7843:7:23",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 26494,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7843:38:23",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "7812:69:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26496,
                  "nodeType": "ExpressionStatement",
                  "src": "7812:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26500,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "7905:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26497,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7891:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26499,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7894:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "7891:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7891:26:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26502,
                  "nodeType": "ExpressionStatement",
                  "src": "7891:26:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 26508,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "7979:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 26509,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7991:19:23",
                              "memberName": "INVALID_PARTICIPANT",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24510,
                              "src": "7979:31:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 26510,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "8011:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "7979:40:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 26506,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "7956:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 26507,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "7960:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "7956:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 26511,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7956:64:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 26503,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7927:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26505,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7930:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "7927:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 26512,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7927:103:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26513,
                  "nodeType": "ExpressionStatement",
                  "src": "7927:103:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26517,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26476,
                        "src": "8075:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 26514,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26455,
                        "src": "8040:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26516,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8052:22:23",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25030,
                      "src": "8040:34:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 26518,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8040:61:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26519,
                  "nodeType": "ExpressionStatement",
                  "src": "8040:61:23"
                }
              ]
            },
            "functionSelector": "2f647527",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testApproveInvalidParticipant",
            "nameLocation": "7533:29:23",
            "parameters": {
              "id": 26451,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7562:2:23"
            },
            "returnParameters": {
              "id": 26452,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7572:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26575,
            "nodeType": "FunctionDefinition",
            "src": "8114:448:23",
            "body": {
              "id": 26574,
              "nodeType": "Block",
              "src": "8153:409:23",
              "statements": [
                {
                  "assignments": [
                    26526
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26526,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "8175:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26574,
                      "src": "8163:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26525,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26524,
                          "name": "PepperStake",
                          "nameLocations": [
                            "8163:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "8163:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "8163:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26529,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26527,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "8189:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26528,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8189:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8163:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26533,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "8251:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26530,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "8242:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26532,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8245:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "8242:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8242:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26535,
                  "nodeType": "ExpressionStatement",
                  "src": "8242:22:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26536,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26526,
                          "src": "8274:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26538,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8286:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "8274:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26540,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26539,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8299:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "8274:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26541,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8274:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26542,
                  "nodeType": "ExpressionStatement",
                  "src": "8274:38:23"
                },
                {
                  "assignments": [
                    26547
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26547,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "8339:25:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26574,
                      "src": "8322:42:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 26545,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "8322:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26546,
                        "nodeType": "ArrayTypeName",
                        "src": "8322:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26553,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "30",
                        "id": 26551,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8381:1:23",
                        "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": 26550,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "8367:13:23",
                      "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": 26548,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "8371:7:23",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26549,
                        "nodeType": "ArrayTypeName",
                        "src": "8371:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 26552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8367:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8322:61:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26557,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "8407:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26554,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "8393:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26556,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8396:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "8393:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8393:26:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26559,
                  "nodeType": "ExpressionStatement",
                  "src": "8393:26:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26563,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26547,
                        "src": "8464:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 26560,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26526,
                        "src": "8429:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26562,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8441:22:23",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25030,
                      "src": "8429:34:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 26564,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8429:61:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26565,
                  "nodeType": "ExpressionStatement",
                  "src": "8429:61:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 26571,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 26567,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26526,
                              "src": "8507:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 26568,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "8519:28:23",
                            "memberName": "COMPLETING_PARTICIPANT_COUNT",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24832,
                            "src": "8507:40:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 26569,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8507:42:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 26570,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8553:1:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8507:47:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 26566,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "8500:6:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 26572,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8500:55:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26573,
                  "nodeType": "ExpressionStatement",
                  "src": "8500:55:23"
                }
              ]
            },
            "functionSelector": "ac6a4242",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testApproveEmptyList",
            "nameLocation": "8123:20:23",
            "parameters": {
              "id": 26522,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8143:2:23"
            },
            "returnParameters": {
              "id": 26523,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8153:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26647,
            "nodeType": "FunctionDefinition",
            "src": "8568:583:23",
            "body": {
              "id": 26646,
              "nodeType": "Block",
              "src": "8602:549:23",
              "statements": [
                {
                  "assignments": [
                    26580
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26580,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "8624:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26646,
                      "src": "8612:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26579,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26578,
                          "name": "PepperStake",
                          "nameLocations": [
                            "8612:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "8612:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "8612:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26583,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26581,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "8638:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26582,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8638:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8612:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26587,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "8700:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26584,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "8691:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26586,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8694:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "8691:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26588,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8691:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26589,
                  "nodeType": "ExpressionStatement",
                  "src": "8691:22:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26590,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26580,
                          "src": "8723:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26592,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8735:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "8723:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26594,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26593,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8748:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "8723:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26595,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8723:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26596,
                  "nodeType": "ExpressionStatement",
                  "src": "8723:38:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26600,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "8780:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26597,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "8771:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26599,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8774:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "8771:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26601,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8771:21:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26602,
                  "nodeType": "ExpressionStatement",
                  "src": "8771:21:23"
                },
                {
                  "assignments": [
                    26607
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26607,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "8819:25:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26646,
                      "src": "8802:42:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 26605,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "8802:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26606,
                        "nodeType": "ArrayTypeName",
                        "src": "8802:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26613,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26611,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8861:1:23",
                        "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": 26610,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "8847:13:23",
                      "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": 26608,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "8851:7:23",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26609,
                        "nodeType": "ArrayTypeName",
                        "src": "8851:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 26612,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8847:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8802:61:23"
                },
                {
                  "expression": {
                    "id": 26618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26614,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26607,
                        "src": "8873:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 26616,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 26615,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8899:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "8873:28:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26617,
                      "name": "_participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25613,
                      "src": "8904:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "8873:43:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26619,
                  "nodeType": "ExpressionStatement",
                  "src": "8873:43:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26623,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26607,
                        "src": "8961:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 26620,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26580,
                        "src": "8926:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26622,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8938:22:23",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25030,
                      "src": "8926:34:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 26624,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8926:61:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26625,
                  "nodeType": "ExpressionStatement",
                  "src": "8926:61:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26629,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "9006:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26626,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "8997:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26628,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9000:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "8997:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8997:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26631,
                  "nodeType": "ExpressionStatement",
                  "src": "8997:22:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26635,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26607,
                        "src": "9053:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 26632,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26580,
                        "src": "9029:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26634,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9041:11:23",
                      "memberName": "returnStake",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25128,
                      "src": "9029:23:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 26636,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9029:50:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26637,
                  "nodeType": "ExpressionStatement",
                  "src": "9029:50:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 26643,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 26639,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26580,
                              "src": "9096:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 26640,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9108:28:23",
                            "memberName": "COMPLETING_PARTICIPANT_COUNT",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24832,
                            "src": "9096:40:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 26641,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9096:42:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 26642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9142:1:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "9096:47:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 26638,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "9089:6:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 26644,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9089:55:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26645,
                  "nodeType": "ExpressionStatement",
                  "src": "9089:55:23"
                }
              ]
            },
            "functionSelector": "8db81b75",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testReturnStake",
            "nameLocation": "8577:15:23",
            "parameters": {
              "id": 26576,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8592:2:23"
            },
            "returnParameters": {
              "id": 26577,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8602:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26722,
            "nodeType": "FunctionDefinition",
            "src": "9157:744:23",
            "body": {
              "id": 26721,
              "nodeType": "Block",
              "src": "9204:697:23",
              "statements": [
                {
                  "assignments": [
                    26652
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26652,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "9226:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26721,
                      "src": "9214:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26651,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26650,
                          "name": "PepperStake",
                          "nameLocations": [
                            "9214:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "9214:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "9214:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26655,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26653,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "9240:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9240:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9214:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26659,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "9302:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26656,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "9293:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26658,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9296:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "9293:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9293:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26661,
                  "nodeType": "ExpressionStatement",
                  "src": "9293:22:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26662,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26652,
                          "src": "9325:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26664,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9337:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "9325:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26666,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26665,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9350:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "9325:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26667,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9325:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26668,
                  "nodeType": "ExpressionStatement",
                  "src": "9325:38:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26672,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "9382:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26669,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "9373:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26671,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9376:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "9373:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26673,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9373:21:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26674,
                  "nodeType": "ExpressionStatement",
                  "src": "9373:21:23"
                },
                {
                  "assignments": [
                    26679
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26679,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "9421:25:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26721,
                      "src": "9404:42:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 26677,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "9404:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26678,
                        "nodeType": "ArrayTypeName",
                        "src": "9404:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26685,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26683,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9463:1:23",
                        "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": 26682,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "9449:13:23",
                      "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": 26680,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "9453:7:23",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26681,
                        "nodeType": "ArrayTypeName",
                        "src": "9453:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 26684,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9449:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9404:61:23"
                },
                {
                  "expression": {
                    "id": 26690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26686,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26679,
                        "src": "9475:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 26688,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 26687,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9501:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "9475:28:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26689,
                      "name": "_participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25613,
                      "src": "9506:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "9475:43:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26691,
                  "nodeType": "ExpressionStatement",
                  "src": "9475:43:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26695,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26679,
                        "src": "9563:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 26692,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26652,
                        "src": "9528:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26694,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9540:22:23",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25030,
                      "src": "9528:34:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 26696,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9528:61:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26697,
                  "nodeType": "ExpressionStatement",
                  "src": "9528:61:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26701,
                        "name": "_participant2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25624,
                        "src": "9608:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26698,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "9599:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26700,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9602:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "9599:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26702,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9599:23:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26703,
                  "nodeType": "ExpressionStatement",
                  "src": "9599:23:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 26709,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "9701:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 26710,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9734:46:23",
                              "memberName": "NOT_AUTHORIZED_TO_RETURN_STAKE_FOR_PARTICIPANT",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24516,
                              "src": "9701:79:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 26711,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9802:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "9701:109:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 26707,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "9661:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 26708,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "9665:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "9661:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 26712,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9661:163:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 26704,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "9632:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26706,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9635:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "9632:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 26713,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9632:202:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26714,
                  "nodeType": "ExpressionStatement",
                  "src": "9632:202:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26718,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26679,
                        "src": "9868:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 26715,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26652,
                        "src": "9844:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26717,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9856:11:23",
                      "memberName": "returnStake",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25128,
                      "src": "9844:23:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 26719,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9844:50:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26720,
                  "nodeType": "ExpressionStatement",
                  "src": "9844:50:23"
                }
              ]
            },
            "functionSelector": "7bcf8810",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testReturnStakeNonSupervisor",
            "nameLocation": "9166:28:23",
            "parameters": {
              "id": 26648,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9194:2:23"
            },
            "returnParameters": {
              "id": 26649,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9204:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26859,
            "nodeType": "FunctionDefinition",
            "src": "9907:1212:23",
            "body": {
              "id": 26858,
              "nodeType": "Block",
              "src": "9962:1157:23",
              "statements": [
                {
                  "assignments": [
                    26727
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26727,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "9984:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26858,
                      "src": "9972:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26726,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26725,
                          "name": "PepperStake",
                          "nameLocations": [
                            "9972:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "9972:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "9972:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26730,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26728,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "9998:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26729,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9998:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9972:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26734,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "10060:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26731,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "10051:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26733,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10054:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "10051:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26735,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10051:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26736,
                  "nodeType": "ExpressionStatement",
                  "src": "10051:22:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26737,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26727,
                          "src": "10083:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26739,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "10095:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "10083:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26741,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26740,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10108:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "10083:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26742,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10083:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26743,
                  "nodeType": "ExpressionStatement",
                  "src": "10083:38:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26747,
                        "name": "_participant2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25624,
                        "src": "10140:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26744,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "10131:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26746,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10134:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "10131:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26748,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10131:23:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26749,
                  "nodeType": "ExpressionStatement",
                  "src": "10131:23:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26750,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26727,
                          "src": "10164:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26752,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "10176:5:23",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24925,
                        "src": "10164:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26754,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26753,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10189:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "10164:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26755,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10164:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26756,
                  "nodeType": "ExpressionStatement",
                  "src": "10164:38:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26760,
                        "name": "_sponsor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25635,
                        "src": "10221:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26757,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "10212:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26759,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10215:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "10212:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26761,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10212:18:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26762,
                  "nodeType": "ExpressionStatement",
                  "src": "10212:18:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26763,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26727,
                          "src": "10240:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 26765,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "10252:7:23",
                        "memberName": "sponsor",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24949,
                        "src": "10240:19:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 26767,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26766,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10267:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "10240:38:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 26768,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10240:40:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26769,
                  "nodeType": "ExpressionStatement",
                  "src": "10240:40:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 26773,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26727,
                              "src": "10320:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            ],
                            "id": 26772,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10312:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 26771,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "10312:7:23",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 26774,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10312:20:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26775,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "10333:7:23",
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "src": "10312:28:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "302e3135",
                        "id": 26776,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10354:10:23",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_150000000000000000_by_1",
                          "typeString": "int_const 150000000000000000"
                        },
                        "value": "0.15"
                      },
                      {
                        "hexValue": "62616c616e6365206973206e6f7420302e3135206574686572",
                        "id": 26777,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10378:27:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ea4047aab45f25908de2e51202a5d391062dcf6d0317a44378aaa254c42df204",
                          "typeString": "literal_string \"balance is not 0.15 ether\""
                        },
                        "value": "balance is not 0.15 ether"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_rational_150000000000000000_by_1",
                          "typeString": "int_const 150000000000000000"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ea4047aab45f25908de2e51202a5d391062dcf6d0317a44378aaa254c42df204",
                          "typeString": "literal_string \"balance is not 0.15 ether\""
                        }
                      ],
                      "id": 26770,
                      "name": "assertEq",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1980,
                        2005,
                        2018,
                        2034,
                        2076,
                        2118,
                        2160,
                        2197,
                        2234,
                        2271,
                        320,
                        345,
                        375,
                        400,
                        459,
                        484,
                        514,
                        539,
                        1639,
                        1674
                      ],
                      "referencedDeclaration": 539,
                      "src": "10290:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,uint256,string memory)"
                      }
                    },
                    "id": 26778,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10290:125:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26779,
                  "nodeType": "ExpressionStatement",
                  "src": "10290:125:23"
                },
                {
                  "assignments": [
                    26784
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26784,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "10442:25:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26858,
                      "src": "10425:42:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 26782,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "10425:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26783,
                        "nodeType": "ArrayTypeName",
                        "src": "10425:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26790,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26788,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10484:1:23",
                        "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": 26787,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "10470:13:23",
                      "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": 26785,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "10474:7:23",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26786,
                        "nodeType": "ArrayTypeName",
                        "src": "10474:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 26789,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10470:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10425:61:23"
                },
                {
                  "expression": {
                    "id": 26795,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26791,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26784,
                        "src": "10496:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 26793,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 26792,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10522:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "10496:28:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26794,
                      "name": "_participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25613,
                      "src": "10527:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "10496:43:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26796,
                  "nodeType": "ExpressionStatement",
                  "src": "10496:43:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26800,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "10558:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26797,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "10549:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26799,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10552:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "10549:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10549:21:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26802,
                  "nodeType": "ExpressionStatement",
                  "src": "10549:21:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26806,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26784,
                        "src": "10615:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 26803,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26727,
                        "src": "10580:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26805,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10592:22:23",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25030,
                      "src": "10580:34:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 26807,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10580:61:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26808,
                  "nodeType": "ExpressionStatement",
                  "src": "10580:61:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26812,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "10660:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26809,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "10651:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26811,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10654:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "10651:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26813,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10651:21:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26814,
                  "nodeType": "ExpressionStatement",
                  "src": "10651:21:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26818,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26784,
                        "src": "10706:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 26815,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26727,
                        "src": "10682:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26817,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10694:11:23",
                      "memberName": "returnStake",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25128,
                      "src": "10682:23:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 26819,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10682:50:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26820,
                  "nodeType": "ExpressionStatement",
                  "src": "10682:50:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 26824,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26727,
                              "src": "10772:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            ],
                            "id": 26823,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10764:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 26822,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "10764:7:23",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 26825,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10764:20:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26826,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "10785:7:23",
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "src": "10764:28:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "302e31",
                        "id": 26827,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10806:9:23",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100000000000000000_by_1",
                          "typeString": "int_const 100000000000000000"
                        },
                        "value": "0.1"
                      },
                      {
                        "hexValue": "62616c616e6365206973206e6f7420302e31206574686572",
                        "id": 26828,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10829:26:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f91b4b2f247a8d3fa7a481fdcd8f731f28781f141e41a2edfde37e49173d7e35",
                          "typeString": "literal_string \"balance is not 0.1 ether\""
                        },
                        "value": "balance is not 0.1 ether"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_rational_100000000000000000_by_1",
                          "typeString": "int_const 100000000000000000"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f91b4b2f247a8d3fa7a481fdcd8f731f28781f141e41a2edfde37e49173d7e35",
                          "typeString": "literal_string \"balance is not 0.1 ether\""
                        }
                      ],
                      "id": 26821,
                      "name": "assertEq",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1980,
                        2005,
                        2018,
                        2034,
                        2076,
                        2118,
                        2160,
                        2197,
                        2234,
                        2271,
                        320,
                        345,
                        375,
                        400,
                        459,
                        484,
                        514,
                        539,
                        1639,
                        1674
                      ],
                      "referencedDeclaration": 539,
                      "src": "10742:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,uint256,string memory)"
                      }
                    },
                    "id": 26829,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10742:123:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26830,
                  "nodeType": "ExpressionStatement",
                  "src": "10742:123:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "3135",
                        "id": 26834,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10883:7:23",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        },
                        "value": "15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        }
                      ],
                      "expression": {
                        "id": 26831,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "10875:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26833,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10878:4:23",
                      "memberName": "warp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7997,
                      "src": "10875:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 26835,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10875:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26836,
                  "nodeType": "ExpressionStatement",
                  "src": "10875:16:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26840,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "10915:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26837,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "10901:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26839,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10904:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "10901:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26841,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10901:26:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26842,
                  "nodeType": "ExpressionStatement",
                  "src": "10901:26:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 26843,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26727,
                        "src": "10937:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26845,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10949:32:23",
                      "memberName": "postCompletionWindowDistribution",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25400,
                      "src": "10937:44:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 26846,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10937:46:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26847,
                  "nodeType": "ExpressionStatement",
                  "src": "10937:46:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 26851,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26727,
                              "src": "11023:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            ],
                            "id": 26850,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11015:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 26849,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "11015:7:23",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 26852,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11015:20:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 26853,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "11036:7:23",
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "src": "11015:28:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 26854,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11057:7:23",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "62616c616e6365206973206e6f742030206574686572",
                        "id": 26855,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11078:24:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b71b8f78dfd0f046065232a4a950f893c6f17a4f3df0ef1d57952f72ebfd025",
                          "typeString": "literal_string \"balance is not 0 ether\""
                        },
                        "value": "balance is not 0 ether"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b71b8f78dfd0f046065232a4a950f893c6f17a4f3df0ef1d57952f72ebfd025",
                          "typeString": "literal_string \"balance is not 0 ether\""
                        }
                      ],
                      "id": 26848,
                      "name": "assertEq",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1980,
                        2005,
                        2018,
                        2034,
                        2076,
                        2118,
                        2160,
                        2197,
                        2234,
                        2271,
                        320,
                        345,
                        375,
                        400,
                        459,
                        484,
                        514,
                        539,
                        1639,
                        1674
                      ],
                      "referencedDeclaration": 539,
                      "src": "10993:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,uint256,string memory)"
                      }
                    },
                    "id": 26856,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10993:119:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26857,
                  "nodeType": "ExpressionStatement",
                  "src": "10993:119:23"
                }
              ]
            },
            "functionSelector": "e63bdc2c",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testPostCompletionWindowDistribution",
            "nameLocation": "9916:36:23",
            "parameters": {
              "id": 26723,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9952:2:23"
            },
            "returnParameters": {
              "id": 26724,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9962:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26891,
            "nodeType": "FunctionDefinition",
            "src": "11125:402:23",
            "body": {
              "id": 26890,
              "nodeType": "Block",
              "src": "11199:328:23",
              "statements": [
                {
                  "assignments": [
                    26864
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26864,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "11221:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26890,
                      "src": "11209:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26863,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26862,
                          "name": "PepperStake",
                          "nameLocations": [
                            "11209:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "11209:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "11209:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26867,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26865,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "11235:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26866,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11235:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11209:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26871,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25646,
                        "src": "11302:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26868,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "11288:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26870,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11291:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "11288:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26872,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11288:26:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26873,
                  "nodeType": "ExpressionStatement",
                  "src": "11288:26:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 26879,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "11393:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 26880,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11405:26:23",
                              "memberName": "COMPLETION_WINDOW_NOT_OVER",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24506,
                              "src": "11393:38:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 26881,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11432:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "11393:47:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 26877,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "11353:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 26878,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "11357:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "11353:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 26882,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11353:101:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 26874,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "11324:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26876,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11327:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "11324:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 26883,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11324:140:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26884,
                  "nodeType": "ExpressionStatement",
                  "src": "11324:140:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 26885,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26864,
                        "src": "11474:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26887,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11486:32:23",
                      "memberName": "postCompletionWindowDistribution",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25400,
                      "src": "11474:44:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 26888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11474:46:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26889,
                  "nodeType": "ExpressionStatement",
                  "src": "11474:46:23"
                }
              ]
            },
            "functionSelector": "8d61b56e",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testPostCompletionWindowDistributionReturnWindowNotOver",
            "nameLocation": "11134:55:23",
            "parameters": {
              "id": 26860,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11189:2:23"
            },
            "returnParameters": {
              "id": 26861,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11199:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26934,
            "nodeType": "FunctionDefinition",
            "src": "11533:545:23",
            "body": {
              "id": 26933,
              "nodeType": "Block",
              "src": "11601:477:23",
              "statements": [
                {
                  "assignments": [
                    26896
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26896,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "11623:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 26933,
                      "src": "11611:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26895,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26894,
                          "name": "PepperStake",
                          "nameLocations": [
                            "11611:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "11611:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "11611:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26899,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26897,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25815,
                      "src": "11637:41:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$25401_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 26898,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11637:43:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11611:69:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "3135",
                        "id": 26903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11698:7:23",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        },
                        "value": "15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        }
                      ],
                      "expression": {
                        "id": 26900,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "11690:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26902,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11693:4:23",
                      "memberName": "warp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7997,
                      "src": "11690:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 26904,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11690:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26905,
                  "nodeType": "ExpressionStatement",
                  "src": "11690:16:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26909,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "11730:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26906,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "11716:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26908,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11719:10:23",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "11716:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26910,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11716:27:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26911,
                  "nodeType": "ExpressionStatement",
                  "src": "11716:27:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 26912,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26896,
                        "src": "11753:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26914,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11765:32:23",
                      "memberName": "postCompletionWindowDistribution",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25400,
                      "src": "11753:44:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 26915,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11753:46:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26916,
                  "nodeType": "ExpressionStatement",
                  "src": "11753:46:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 26922,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "11878:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 26923,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11911:50:23",
                              "memberName": "POST_COMPLETION_WINDOW_DISTRIBUTION_ALREADY_CALLED",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24512,
                              "src": "11878:83:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 26924,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11983:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "11878:113:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 26920,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "11838:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 26921,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "11842:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "11838:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 26925,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11838:167:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 26917,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "11809:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26919,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11812:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "11809:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 26926,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11809:206:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26927,
                  "nodeType": "ExpressionStatement",
                  "src": "11809:206:23"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 26928,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26896,
                        "src": "12025:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 26930,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12037:32:23",
                      "memberName": "postCompletionWindowDistribution",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25400,
                      "src": "12025:44:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 26931,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12025:46:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26932,
                  "nodeType": "ExpressionStatement",
                  "src": "12025:46:23"
                }
              ]
            },
            "functionSelector": "bff88651",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testPostCompletionWindowDistributionAlreadyCalled",
            "nameLocation": "11542:49:23",
            "parameters": {
              "id": 26892,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11591:2:23"
            },
            "returnParameters": {
              "id": 26893,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11601:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 27014,
            "nodeType": "FunctionDefinition",
            "src": "12084:730:23",
            "body": {
              "id": 27013,
              "nodeType": "Block",
              "src": "12127:687:23",
              "statements": [
                {
                  "assignments": [
                    26941
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26941,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "12154:12:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 27013,
                      "src": "12137:29:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 26939,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "12137:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 26940,
                        "nodeType": "ArrayTypeName",
                        "src": "12137:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26947,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 26945,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12183:1:23",
                        "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": 26944,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "12169:13:23",
                      "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": 26942,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "12173:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 26943,
                        "nodeType": "ArrayTypeName",
                        "src": "12173:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 26946,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12169:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12137:48:23"
                },
                {
                  "expression": {
                    "id": 26952,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26948,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26941,
                        "src": "12195:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 26950,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 26949,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12208:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12195:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e3035",
                      "id": 26951,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12213:10:23",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_50000000000000000_by_1",
                        "typeString": "int_const 50000000000000000"
                      },
                      "value": "0.05"
                    },
                    "src": "12195:28:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26953,
                  "nodeType": "ExpressionStatement",
                  "src": "12195:28:23"
                },
                {
                  "assignments": [
                    26956
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26956,
                      "mutability": "mutable",
                      "name": "defaultLaunchData",
                      "nameLocation": "12262:17:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 27013,
                      "src": "12233:46:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 26955,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26954,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "12233:21:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25582,
                          "src": "12233:21:23"
                        },
                        "referencedDeclaration": 25582,
                        "src": "12233:21:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26986,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 26961,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12331:1:23",
                            "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": 26960,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12317:13:23",
                          "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": 26958,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12321:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 26959,
                            "nodeType": "ArrayTypeName",
                            "src": "12321:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 26962,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12317:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 26966,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12361:1:23",
                            "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": 26965,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12347:13:23",
                          "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": 26963,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12351:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 26964,
                            "nodeType": "ArrayTypeName",
                            "src": "12351:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 26967,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12347:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 26971,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12391:1:23",
                            "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": 26970,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12377:13:23",
                          "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": 26968,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12381:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 26969,
                            "nodeType": "ArrayTypeName",
                            "src": "12381:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 26972,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12377:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 26976,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12421:1:23",
                            "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": 26975,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12407:13:23",
                          "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": 26973,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12411:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 26974,
                            "nodeType": "ArrayTypeName",
                            "src": "12411:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 26977,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12407:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 26978,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26941,
                        "src": "12437:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 26979,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12463:7:23",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "hexValue": "313030",
                        "id": 26980,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12484:3:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        "value": "100"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 26981,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12501:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 26982,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12520:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 26983,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12539:4:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "",
                        "id": 26984,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12557:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 26957,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25582,
                      "src": "12282:21:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$25582_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 26985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12282:287:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12233:336:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26990,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "12588:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26987,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "12579:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 26989,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12582:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "12579:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 26991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12579:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26992,
                  "nodeType": "ExpressionStatement",
                  "src": "12579:22:23"
                },
                {
                  "assignments": [
                    26995
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26995,
                      "mutability": "mutable",
                      "name": "pepperStakeParticipateOnCreate",
                      "nameLocation": "12623:30:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 27013,
                      "src": "12611:42:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$25401",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 26994,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26993,
                          "name": "PepperStake",
                          "nameLocations": [
                            "12611:11:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25401,
                          "src": "12611:11:23"
                        },
                        "referencedDeclaration": 25401,
                        "src": "12611:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$25401",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27004,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 27001,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12713:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 27002,
                        "name": "defaultLaunchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26956,
                        "src": "12716:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          }
                        ],
                        "id": 26998,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "12656:15:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$25582_memory_ptr_$returns$_t_contract$_PepperStake_$25401_$",
                          "typeString": "function (uint256,struct LaunchPepperStakeData memory) payable returns (contract PepperStake)"
                        },
                        "typeName": {
                          "id": 26997,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 26996,
                            "name": "PepperStake",
                            "nameLocations": [
                              "12660:11:23"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 25401,
                            "src": "12660:11:23"
                          },
                          "referencedDeclaration": 25401,
                          "src": "12660:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        }
                      },
                      "id": 27000,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 26999,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12692:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "12656:56:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$25582_memory_ptr_$returns$_t_contract$_PepperStake_$25401_$value",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory) payable returns (contract PepperStake)"
                      }
                    },
                    "id": 27003,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12656:78:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12611:123:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 27010,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 27006,
                              "name": "pepperStakeParticipateOnCreate",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26995,
                              "src": "12751:30:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$25401",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 27007,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "12782:17:23",
                            "memberName": "PARTICIPANT_COUNT",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24824,
                            "src": "12751:48:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 27008,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12751:50:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 27009,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12805:1:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "12751:55:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 27005,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "12744:6:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 27011,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12744:63:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27012,
                  "nodeType": "ExpressionStatement",
                  "src": "12744:63:23"
                }
              ]
            },
            "functionSelector": "4c504632",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testCreatorParticipation",
            "nameLocation": "12093:24:23",
            "parameters": {
              "id": 26935,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12117:2:23"
            },
            "returnParameters": {
              "id": 26936,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12127:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 27120,
            "nodeType": "FunctionDefinition",
            "src": "12820:939:23",
            "body": {
              "id": 27119,
              "nodeType": "Block",
              "src": "12882:877:23",
              "statements": [
                {
                  "assignments": [
                    27021
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27021,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "12909:12:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 27119,
                      "src": "12892:29:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 27019,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "12892:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 27020,
                        "nodeType": "ArrayTypeName",
                        "src": "12892:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27027,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 27025,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12938:1:23",
                        "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": 27024,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "12924:13:23",
                      "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": 27022,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "12928:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 27023,
                        "nodeType": "ArrayTypeName",
                        "src": "12928:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 27026,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12924:16:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12892:48:23"
                },
                {
                  "expression": {
                    "id": 27032,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 27028,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27021,
                        "src": "12950:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 27030,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 27029,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12963:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12950:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e31",
                      "id": 27031,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12968:9:23",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_100000000000000000_by_1",
                        "typeString": "int_const 100000000000000000"
                      },
                      "value": "0.1"
                    },
                    "src": "12950:27:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 27033,
                  "nodeType": "ExpressionStatement",
                  "src": "12950:27:23"
                },
                {
                  "assignments": [
                    27036
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27036,
                      "mutability": "mutable",
                      "name": "defaultLaunchData",
                      "nameLocation": "13017:17:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 27119,
                      "src": "12988:46:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 27035,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 27034,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "12988:21:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 25582,
                          "src": "12988:21:23"
                        },
                        "referencedDeclaration": 25582,
                        "src": "12988:21:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27066,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 27041,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13086:1:23",
                            "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": 27040,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "13072:13:23",
                          "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": 27038,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "13076:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 27039,
                            "nodeType": "ArrayTypeName",
                            "src": "13076:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 27042,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13072:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 27046,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13116:1:23",
                            "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": 27045,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "13102:13:23",
                          "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": 27043,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "13106:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 27044,
                            "nodeType": "ArrayTypeName",
                            "src": "13106:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 27047,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13102:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 27051,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13146:1:23",
                            "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": 27050,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "13132:13:23",
                          "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": 27048,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "13136:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 27049,
                            "nodeType": "ArrayTypeName",
                            "src": "13136:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 27052,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13132:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 27056,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13176:1:23",
                            "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": 27055,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "13162:13:23",
                          "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": 27053,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "13166:7:23",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 27054,
                            "nodeType": "ArrayTypeName",
                            "src": "13166:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 27057,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13162:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 27058,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27021,
                        "src": "13192:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 27059,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13218:7:23",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "hexValue": "313030",
                        "id": 27060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13239:3:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        "value": "100"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 27061,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13256:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 27062,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13275:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 27063,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13294:4:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "",
                        "id": 27064,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13312:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 27037,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25582,
                      "src": "13037:21:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$25582_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 27065,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13037:287:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12988:336:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 27070,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "13343:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 27067,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "13334:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 27069,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13337:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "13334:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 27071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13334:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27072,
                  "nodeType": "ExpressionStatement",
                  "src": "13334:22:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 27078,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "13418:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 27079,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13430:22:23",
                              "memberName": "INCORRECT_STAKE_AMOUNT",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24500,
                              "src": "13418:34:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 27080,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13453:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "13418:43:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 27076,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "13395:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 27077,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "13399:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "13395:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 27081,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13395:67:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 27073,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "13366:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 27075,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13369:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "13366:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 27082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13366:106:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27083,
                  "nodeType": "ExpressionStatement",
                  "src": "13366:106:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 27089,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13516:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 27090,
                        "name": "defaultLaunchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27036,
                        "src": "13519:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          }
                        ],
                        "id": 27086,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "13482:15:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$25582_memory_ptr_$returns$_t_contract$_PepperStake_$25401_$",
                          "typeString": "function (uint256,struct LaunchPepperStakeData memory) payable returns (contract PepperStake)"
                        },
                        "typeName": {
                          "id": 27085,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 27084,
                            "name": "PepperStake",
                            "nameLocations": [
                              "13486:11:23"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 25401,
                            "src": "13486:11:23"
                          },
                          "referencedDeclaration": 25401,
                          "src": "13486:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        }
                      },
                      "id": 27088,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e35",
                          "id": 27087,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13505:9:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_500000000000000000_by_1",
                            "typeString": "int_const 500000000000000000"
                          },
                          "value": "0.5"
                        }
                      ],
                      "src": "13482:33:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$25582_memory_ptr_$returns$_t_contract$_PepperStake_$25401_$value",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory) payable returns (contract PepperStake)"
                      }
                    },
                    "id": 27091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13482:55:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "id": 27092,
                  "nodeType": "ExpressionStatement",
                  "src": "13482:55:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 27096,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25613,
                        "src": "13557:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 27093,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "13548:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 27095,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13551:5:23",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "13548:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 27097,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13548:22:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27098,
                  "nodeType": "ExpressionStatement",
                  "src": "13548:22:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 27104,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25401,
                                "src": "13632:11:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$25401_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 27105,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13644:22:23",
                              "memberName": "INCORRECT_STAKE_AMOUNT",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24500,
                              "src": "13632:34:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 27106,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13667:8:23",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "13632:43:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 27102,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "13609:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 27103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "13613:18:23",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "13609:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 27107,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13609:67:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 27099,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "13580:2:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 27101,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13583:12:23",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "13580:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 27108,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13580:106:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27109,
                  "nodeType": "ExpressionStatement",
                  "src": "13580:106:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 27115,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13731:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 27116,
                        "name": "defaultLaunchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27036,
                        "src": "13734:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$25582_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          }
                        ],
                        "id": 27112,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "13696:15:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$25582_memory_ptr_$returns$_t_contract$_PepperStake_$25401_$",
                          "typeString": "function (uint256,struct LaunchPepperStakeData memory) payable returns (contract PepperStake)"
                        },
                        "typeName": {
                          "id": 27111,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 27110,
                            "name": "PepperStake",
                            "nameLocations": [
                              "13700:11:23"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 25401,
                            "src": "13700:11:23"
                          },
                          "referencedDeclaration": 25401,
                          "src": "13700:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$25401",
                            "typeString": "contract PepperStake"
                          }
                        }
                      },
                      "id": 27114,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3135",
                          "id": 27113,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13719:10:23",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_150000000000000000_by_1",
                            "typeString": "int_const 150000000000000000"
                          },
                          "value": "0.15"
                        }
                      ],
                      "src": "13696:34:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$25582_memory_ptr_$returns$_t_contract$_PepperStake_$25401_$value",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory) payable returns (contract PepperStake)"
                      }
                    },
                    "id": 27117,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13696:56:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$25401",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "id": 27118,
                  "nodeType": "ExpressionStatement",
                  "src": "13696:56:23"
                }
              ]
            },
            "functionSelector": "fdb5d2db",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testCreatorParticipationWithIncorrectAmount",
            "nameLocation": "12829:43:23",
            "parameters": {
              "id": 27015,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12872:2:23"
            },
            "returnParameters": {
              "id": 27016,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12882:0:23"
            },
            "scope": 27121,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 25601,
              "name": "Test",
              "nameLocations": [
                "207:4:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 7532,
              "src": "207:4:23"
            },
            "id": 25602,
            "nodeType": "InheritanceSpecifier",
            "src": "207:4:23"
          }
        ],
        "canonicalName": "PepperStakeTest",
        "contractDependencies": [
          25401
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          27121,
          7532,
          7501,
          5073,
          4684,
          2677,
          1786,
          7521,
          1818
        ],
        "name": "PepperStakeTest",
        "nameLocation": "188:15:23",
        "scope": 27122,
        "usedErrors": []
      }
    ],
    "license": "UNLICENSED"
  },
  "id": 23
}