{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_projectId",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "address[]",
              "name": "supervisors",
              "type": "address[]"
            },
            {
              "internalType": "address[]",
              "name": "participantAllowList",
              "type": "address[]"
            },
            {
              "internalType": "address[]",
              "name": "unreturnedStakeBeneficiaries",
              "type": "address[]"
            },
            {
              "internalType": "address[]",
              "name": "oracleDelegateAddresses",
              "type": "address[]"
            },
            {
              "internalType": "uint256[]",
              "name": "stakingTiers",
              "type": "uint256[]"
            },
            {
              "internalType": "uint256",
              "name": "completionWindowSeconds",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxParticipants",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "shouldUseParticipantAllowList",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "shouldParticipantsShareUnreturnedStake",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "shouldUseSupervisorInactionGuard",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "creatorFee",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "creatorFeeBeneficiary",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "supervisorTip",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "metadataURI",
              "type": "string"
            }
          ],
          "internalType": "struct LaunchPepperStakeData",
          "name": "_launchData",
          "type": "tuple"
        },
        {
          "internalType": "uint256",
          "name": "_protocolFee",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_protocolFeeBeneficiary",
          "type": "address"
        }
      ],
      "stateMutability": "payable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "ALREADY_COMPLETED",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ALREADY_PARTICIPATING",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "CALLER_IS_NOT_SUPERVISOR",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "COMPLETION_WINDOW_NOT_OVER",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "COMPLETION_WINDOW_OVER",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FEE_SUM_EXCEEDS_100_PERCENT",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "INCORRECT_STAKE_AMOUNT",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "INVALID_ORACLE_DELEGATE",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "INVALID_PARTICIPANT",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "MAX_PARTICIPANTS_REACHED",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PARTICIPANT_NOT_ALLOWED",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "POST_COMPLETION_WINDOW_DISTRIBUTION_ALREADY_CALLED",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "prod1",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "denominator",
          "type": "uint256"
        }
      ],
      "name": "PRBMath__MulDivOverflow",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "supervisor",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "participants",
          "type": "address[]"
        }
      ],
      "name": "ApproveForParticipants",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "protocolFeeAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "protocolFeeBeneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "creatorFeeAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "creatorFeeBeneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "supervisorTipAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "supervisors",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "supervisorShare",
          "type": "uint256"
        }
      ],
      "name": "DistributeFees",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "beneficiaries",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "beneficiaryShare",
          "type": "uint256"
        }
      ],
      "name": "DistributeSponsorContribution",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "beneficiaries",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "beneficiaryShare",
          "type": "uint256"
        }
      ],
      "name": "DistributeUnreturnedStake",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "caller",
          "type": "address"
        }
      ],
      "name": "PostCompletionWindowDistribution",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "participant",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "stakeAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fee",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "returnAmount",
          "type": "uint256"
        }
      ],
      "name": "ReturnStake",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "sponsor",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Sponsor",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "participant",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Stake",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "PROJECT_ID",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_participants",
          "type": "address[]"
        }
      ],
      "name": "approveForParticipants",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_oracleDelegate",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_participants",
          "type": "address[]"
        }
      ],
      "name": "checkOracle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "completingParticipantCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "completionWindowEndTimestamp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "completionWindowSeconds",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isPostReturnWindowDistributionCalled",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isReturnStakeCalled",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maxParticipants",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "metadataURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "oracleDelegates",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "participantCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "participantList",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "participants",
      "outputs": [
        {
          "internalType": "bool",
          "name": "isAllowedToParticipate",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "participated",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "completed",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "stakeAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "postCompletionWindowDistribution",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "shouldParticipantsShareUnreturnedStake",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "shouldUseParticipantAllowList",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "shouldUseSupervisorInactionGuard",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "sponsor",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stake",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "stakingTiers",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "supervisorList",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "supervisors",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalFeesCollected",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalReturnedStakeAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSponsorContribution",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalStakeAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "unreturnedStakeBeneficiaries",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x6080604052633b9aca00600055604051620027d2380380620027d28339810160408190526200002e9162000a59565b60005461018084015161014085015162000049908562000c4b565b62000055919062000c4b565b111562000075576040516352265f9760e11b815260040160405180910390fd5b600184905560005b835151811015620000ee5760016003600086600001518481518110620000a757620000a762000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000e58162000c7d565b9150506200007d565b5060005b836060015151811015620001c457600160046000866060015184815181106200011f576200011f62000c67565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000866060015184815181106200017d576200017d62000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620001bb8162000c7d565b915050620000f2565b508260e0015115620002495760005b83602001515181101562000247576001600260008660200151848151811062000200576200020062000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200023e8162000c7d565b915050620001d3565b505b60005b836080015151811015620002bc576001600560008660800151848151811062000279576200027962000c67565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080620002b39062000c7d565b9150506200024c565b5060408301518051620002d891600691602090910190620007a4565b5060a083015160075560c0830151600855610100808401516009805461012087015160e088015162ffff001990921693151590940262ff000019169290921762010000931515939093029290921760ff19169015151790556101a0830151600a9062000345908262000d28565b50825180516200035e91601191602090910190620007a4565b50306000908152600360205260409020805460ff19166001179055610140830151600b55610160830151600c80546001600160a01b039283166001600160a01b031991821617909155610180850151600d55600e849055600f805492841692909116919091179055600754620003d5904262000c4b565b6012556000601381905560148190556015819055601681905560178190556018556019805461ffff1916905534156200041257620004126200041c565b5050505062000e0a565b60095460ff1680156200043f57503360009081526002602052604090205460ff16155b156200045e57604051631939666560e21b815260040160405180910390fd5b600854601354106200048357604051631e74b6b760e11b815260040160405180910390fd5b33600090815260026020526040902054610100900460ff1615620004ba57604051635fdadce760e01b815260040160405180910390fd5b601254421115620004de576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526005602052604090205460ff166200050f57604051630be5378760e21b815260040160405180910390fd5b60408051608081018252600180825260208083018281526000848601818152346060870190815233808452600290955296822086518154945192511515620100000262ff0000199315156101000261ff00199215159290921661ffff1990961695909517179190911692909217825594519083015560108054928301815584527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67290910180546001600160a01b0319169091179055601380549192620005d58362000c7d565b91905055503460166000828254620005ee919062000c4b565b9250508190555060006200061334600e54600054620006c760201b62000af61760201c565b905060006200063334600b54600054620006c760201b62000af61760201c565b905060006200065334600d54600054620006c760201b62000af61760201c565b905060008162000664848662000c4b565b62000670919062000c4b565b9050806018600082825462000686919062000c4b565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a25050505050565b60008080600019858709858702925082811083820303915050806000036200070657838281620006fb57620006fb62000df4565b04925050506200079d565b8381106200073557604051631dcf306360e21b8152600481018290526024810185905260440160405180910390fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b828054828255906000526020600020908101928215620007fc579160200282015b82811115620007fc57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620007c5565b506200080a9291506200080e565b5090565b5b808211156200080a57600081556001016200080f565b634e487b7160e01b600052604160045260246000fd5b6040516101c081016001600160401b038111828210171562000861576200086162000825565b60405290565b604051601f8201601f191681016001600160401b038111828210171562000892576200089262000825565b604052919050565b60006001600160401b03821115620008b657620008b662000825565b5060051b60200190565b80516001600160a01b0381168114620008d857600080fd5b919050565b600082601f830112620008ef57600080fd5b815160206200090862000902836200089a565b62000867565b82815260059290921b840181019181810190868411156200092857600080fd5b8286015b848110156200094e576200094081620008c0565b83529183019183016200092c565b509695505050505050565b600082601f8301126200096b57600080fd5b815160206200097e62000902836200089a565b82815260059290921b840181019181810190868411156200099e57600080fd5b8286015b848110156200094e5780518352918301918301620009a2565b80518015158114620008d857600080fd5b600082601f830112620009de57600080fd5b81516001600160401b03811115620009fa57620009fa62000825565b602062000a10601f8301601f1916820162000867565b828152858284870101111562000a2557600080fd5b60005b8381101562000a4557858101830151828201840152820162000a28565b506000928101909101919091529392505050565b6000806000806080858703121562000a7057600080fd5b845160208601519094506001600160401b038082111562000a9057600080fd5b908601906101c0828903121562000aa657600080fd5b62000ab06200083b565b82518281111562000ac057600080fd5b62000ace8a828601620008dd565b82525060208301518281111562000ae457600080fd5b62000af28a828601620008dd565b60208301525060408301518281111562000b0b57600080fd5b62000b198a828601620008dd565b60408301525060608301518281111562000b3257600080fd5b62000b408a828601620008dd565b60608301525060808301518281111562000b5957600080fd5b62000b678a82860162000959565b60808301525060a083015160a082015260c083015160c082015262000b8f60e08401620009bb565b60e082015261010062000ba4818501620009bb565b9082015261012062000bb8848201620009bb565b90820152610140838101519082015261016062000bd7818501620008c0565b9082015261018083810151908201526101a0808401518381111562000bfb57600080fd5b62000c098b828701620009cc565b8284015250508095505050506040850151915062000c2a60608601620008c0565b905092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000c615762000c6162000c35565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006001820162000c925762000c9262000c35565b5060010190565b600181811c9082168062000cae57607f821691505b60208210810362000ccf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000d2357600081815260208120601f850160051c8101602086101562000cfe5750805b601f850160051c820191505b8181101562000d1f5782815560010162000d0a565b5050505b505050565b81516001600160401b0381111562000d445762000d4462000825565b62000d5c8162000d55845462000c99565b8462000cd5565b602080601f83116001811462000d94576000841562000d7b5750858301515b600019600386901b1c1916600185901b17855562000d1f565b600085815260208120601f198616915b8281101562000dc55788860151825594840194600190910190840162000da4565b508582101562000de45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601260045260246000fd5b6119b88062000e1a6000396000f3fe6080604052600436106101b75760003560e01c80637df7c74f116100ec578063b468aca71161008a578063db231a4f11610064578063db231a4f146104db578063dcfba2ba146104f0578063e548e3e714610510578063f3ac01b91461054057600080fd5b8063b468aca71461046b578063cebf058f1461048b578063d50267ee146104ab57600080fd5b8063922fce95116100c6578063922fce95146104065780639340fd511461042557806394409a561461043f578063aa546a9e1461045557600080fd5b80637df7c74f146103975780638b301e2b146103b65780638f57727d146103d657600080fd5b8063362f04c01161015957806356539f391161013357806356539f391461034e5780635d758d391461036357806360c6d8ae1461037957806377c936621461038f57600080fd5b8063362f04c01461030e5780633a4b66f1146103245780633ccd928a1461032e57600080fd5b8063157135661161019557806315713566146102945780631f7180dd146102be57806324924bf7146102e257806334908c16146102f857600080fd5b806303ee438c146101bc57806309e69ede146101e75780630e6fdaa11461025c575b600080fd5b3480156101c857600080fd5b506101d1610556565b6040516101de91906114ee565b60405180910390f35b3480156101f357600080fd5b50610234610202366004611558565b6002602052600090815260409020805460019091015460ff808316926101008104821692620100009091049091169084565b60408051941515855292151560208501529015159183019190915260608201526080016101de565b34801561026857600080fd5b5061027c610277366004611573565b6105e4565b6040516001600160a01b0390911681526020016101de565b3480156102a057600080fd5b506019546102ae9060ff1681565b60405190151581526020016101de565b3480156102ca57600080fd5b506102d460145481565b6040519081526020016101de565b3480156102ee57600080fd5b506102d460085481565b34801561030457600080fd5b506102d460175481565b34801561031a57600080fd5b506102d460135481565b61032c61060e565b005b34801561033a57600080fd5b5061027c610349366004611573565b610618565b34801561035a57600080fd5b506001546102d4565b34801561036f57600080fd5b506102d460075481565b34801561038557600080fd5b506102d460185481565b61032c610628565b3480156103a357600080fd5b506009546102ae90610100900460ff1681565b3480156103c257600080fd5b5061027c6103d1366004611573565b610699565b3480156103e257600080fd5b506102ae6103f1366004611558565b60046020526000908152604090205460ff1681565b34801561041257600080fd5b506019546102ae90610100900460ff1681565b34801561043157600080fd5b506009546102ae9060ff1681565b34801561044b57600080fd5b506102d460165481565b34801561046157600080fd5b506102d460155481565b34801561047757600080fd5b5061032c610486366004611669565b6106a9565b34801561049757600080fd5b506009546102ae9062010000900460ff1681565b3480156104b757600080fd5b506102ae6104c6366004611573565b60056020526000908152604090205460ff1681565b3480156104e757600080fd5b5061032c61086c565b3480156104fc57600080fd5b5061032c61050b3660046116a6565b61090b565b34801561051c57600080fd5b506102ae61052b366004611558565b60036020526000908152604090205460ff1681565b34801561054c57600080fd5b506102d460125481565b600a8054610563906116f4565b80601f016020809104026020016040519081016040528092919081815260200182805461058f906116f4565b80156105dc5780601f106105b1576101008083540402835291602001916105dc565b820191906000526020600020905b8154815290600101906020018083116105bf57829003601f168201915b505050505081565b601081815481106105f457600080fd5b6000918252602090912001546001600160a01b0316905081565b610616610bcd565b565b601181815481106105f457600080fd5b60125442111561064b576040516362ca2fcd60e01b815260040160405180910390fd5b346015600082825461065d9190611744565b909155505060405134815233907f74194cee4daf68c6858b41efe9729cf57988cee7f447442f39a1e2adafd4e0219060200160405180910390a2565b600681815481106105f457600080fd5b3360009081526003602052604090205460ff166106d9576040516364f5dc8560e01b815260040160405180910390fd5b6012544211156106fc576040516362ca2fcd60e01b815260040160405180910390fd5b60005b81518110156107da576002600083838151811061071e5761071e61175d565b6020908102919091018101516001600160a01b0316825281019190915260400160002054610100900460ff16610767576040516379c6621560e01b815260040160405180910390fd5b6002600083838151811061077d5761077d61175d565b6020908102919091018101516001600160a01b031682528101919091526040016000205462010000900460ff16156107c8576040516379c6621560e01b815260040160405180910390fd5b806107d281611773565b9150506106ff565b5060005b81518110156108215760008282815181106107fb576107fb61175d565b6020026020010151905061080e81610e41565b508061081981611773565b9150506107de565b506019805460ff1916600117905560405133907f440c93edea69d1cf0502a6e259d2bcaf3e0a4f16428ddd3b6f5b68081e27eea3906108619084906117d0565b60405180910390a250565b601254421161088e5760405163066a900960e21b815260040160405180910390fd5b601954610100900460ff16156108b7576040516376e5413b60e11b815260040160405180910390fd5b6108bf610fed565b6108c7611174565b6108cf611323565b6019805461ff00191661010017905560405133907f8e4581edbcde6e54b523f4d359eb0eff7308e8d3e14ff8eac7e7705b4b98a62a90600090a2565b6001600160a01b03821660009081526004602052604090205460ff166109445760405163d67d8ec560e01b815260040160405180910390fd5b60405163091f613f60e11b8152829060009081906001600160a01b0384169063123ec27e906109779087906004016117d0565b600060405180830381865afa158015610994573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109bc91908101906117e3565b9150915060008167ffffffffffffffff8111156109db576109db61158c565b604051908082528060200260200182016040528015610a04578160200160208202803683370190505b5090506000805b8451811015610a9757848181518110610a2657610a2661175d565b602002602001015115610a8557868181518110610a4557610a4561175d565b6020026020010151838381518110610a5f57610a5f61175d565b6001600160a01b039092166020928302919091019091015281610a8181611773565b9250505b80610a8f81611773565b915050610a0b565b5060405163b468aca760e01b8152309063b468aca790610abb9085906004016117d0565b600060405180830381600087803b158015610ad557600080fd5b505af1158015610ae9573d6000803e3d6000fd5b5050505050505050505050565b6000808060001985870985870292508281108382030391505080600003610b3057838281610b2657610b2661188b565b0492505050610bc6565b838110610b5e57604051631dcf306360e21b8152600481018290526024810185905260440160405180910390fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b60095460ff168015610bef57503360009081526002602052604090205460ff16155b15610c0d57604051631939666560e21b815260040160405180910390fd5b60085460135410610c3157604051631e74b6b760e11b815260040160405180910390fd5b33600090815260026020526040902054610100900460ff1615610c6757604051635fdadce760e01b815260040160405180910390fd5b601254421115610c8a576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526005602052604090205460ff16610cba57604051630be5378760e21b815260040160405180910390fd5b60408051608081018252600180825260208083018281526000848601818152346060870190815233808452600290955296822086518154945192511515620100000262ff0000199315156101000261ff00199215159290921661ffff1990961695909517179190911692909217825594519083015560108054928301815584527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67290910180546001600160a01b0319169091179055601380549192610d7e83611773565b91905055503460166000828254610d959190611744565b925050819055506000610dad34600e54600054610af6565b90506000610dc034600b54600054610af6565b90506000610dd334600d54600054610af6565b9050600081610de28486611744565b610dec9190611744565b90508060186000828254610e009190611744565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a25050505050565b6001600160a01b03811660009081526002602090815260408083208151608081018352815460ff80821615158352610100820481161515958301959095526201000090049093161515918301919091526001015460608201819052600e548354929392610eaf929190610af6565b90506000610ec68360600151600b54600054610af6565b90506000610edd8460600151600d54600054610af6565b9050600081610eec8486611744565b610ef69190611744565b90506000818660600151610f0a91906118a1565b6040519091506001600160a01b0388169082156108fc029083906000818181858888f19350505050158015610f43573d6000803e3d6000fd5b506001600160a01b0387166000908152600260205260408120805462ff00001916620100001790556014805491610f7983611773565b91905055508060176000828254610f909190611744565b9091555050606080870151604080519182526020820185905281018390526001600160a01b038916917f3c6d034538fc1be4c1c02283083c593ad4546ace8a6713cb5fb2ecb705a41446910160405180910390a250505050505050565b6014541561061657600060145460155461100791906118b4565b9050600060145467ffffffffffffffff8111156110265761102661158c565b60405190808252806020026020018201604052801561104f578160200160208202803683370190505b5090506000805b60135481101561112f576000601082815481106110755761107561175d565b60009182526020808320909101546001600160a01b0316808352600290915260409091205490915060ff62010000909104161561111c576040516001600160a01b0382169086156108fc029087906000818181858888f193505050501580156110e2573d6000803e3d6000fd5b50808484815181106110f6576110f661175d565b6001600160a01b03909216602092830291909101909101528261111881611773565b9350505b508061112781611773565b915050611056565b5060155460405133917f2114d896257ce5a58e1c18ae0d1cb1bd56f2f18c8b5a78e4541b48f40883b5af9161116791869188906118d6565b60405180910390a2505050565b6000611187601654600e54600054610af6565b9050600061119c601654600b54600054610af6565b905060006111b1601654600d54600054610af6565b6011549091506000906111c490836118b4565b9050831561120857600f546040516001600160a01b039091169085156108fc029086906000818181858888f19350505050158015611206573d6000803e3d6000fd5b505b821561124a57600c546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015611248573d6000803e3d6000fd5b505b81156112c55760005b6011548110156112c357601181815481106112705761127061175d565b60009182526020822001546040516001600160a01b039091169184156108fc02918591818181858888f193505050501580156112b0573d6000803e3d6000fd5b50806112bb81611773565b915050611253565b505b600f54600c5460405133927ff50e8e029e43d877ce362cea5cb5693fcf553b41d0bc26d03ee286b56964bafb926113159289926001600160a01b03908116928a9291169089906011908a906118fb565b60405180910390a250505050565b600060145460135461133591906118a1565b11156106165760095460609062010000900460ff168015611359575060195460ff16155b156113c05760108054806020026020016040519081016040528092919081815260200182805480156113b457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611396575b5050505050905061141e565b600680548060200260200160405190810160405280929190818152602001828054801561141657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113f8575b505050505090505b601454601354479160009161143391906118a1565b61143d90836118b4565b905060005b83518110156114b05783818151811061145d5761145d61175d565b60200260200101516001600160a01b03166108fc839081150290604051600060405180830381858888f1935050505015801561149d573d6000803e3d6000fd5b50806114a881611773565b915050611442565b50336001600160a01b03167f1a50eba3476dd09ccdbee500a30b43381479c55b92f8ea25850f819ec591a520848484604051611167939291906118d6565b600060208083528351808285015260005b8181101561151b578581018301518582016040015282016114ff565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461155357600080fd5b919050565b60006020828403121561156a57600080fd5b610bc68261153c565b60006020828403121561158557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156115cb576115cb61158c565b604052919050565b600067ffffffffffffffff8211156115ed576115ed61158c565b5060051b60200190565b600082601f83011261160857600080fd5b8135602061161d611618836115d3565b6115a2565b82815260059290921b8401810191818101908684111561163c57600080fd5b8286015b8481101561165e576116518161153c565b8352918301918301611640565b509695505050505050565b60006020828403121561167b57600080fd5b813567ffffffffffffffff81111561169257600080fd5b61169e848285016115f7565b949350505050565b600080604083850312156116b957600080fd5b6116c28361153c565b9150602083013567ffffffffffffffff8111156116de57600080fd5b6116ea858286016115f7565b9150509250929050565b600181811c9082168061170857607f821691505b60208210810361172857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156117575761175761172e565b92915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016117855761178561172e565b5060010190565b600081518084526020808501945080840160005b838110156117c55781516001600160a01b0316875295820195908201906001016117a0565b509495945050505050565b602081526000610bc6602083018461178c565b600080604083850312156117f657600080fd5b825167ffffffffffffffff81111561180d57600080fd5b8301601f8101851361181e57600080fd5b8051602061182e611618836115d3565b82815260059290921b8301810191818101908884111561184d57600080fd5b938201935b8385101561187a578451801515811461186b5760008081fd5b82529382019390820190611852565b969091015195979596505050505050565b634e487b7160e01b600052601260045260246000fd5b818103818111156117575761175761172e565b6000826118d157634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006118e9606083018661178c565b60208301949094525060400152919050565b600060e08201898352602060018060a01b03808b1682860152896040860152808916606086015287608086015260e060a0860152828754808552610100870191508860005283600020945060005b81811015611967578554841683526001958601959285019201611949565b5050809450505050508260c08301529897505050505050505056fea26469706673582212209a4c52bf904012786dbf4b13678b4ede180c0089fbc1fbf7a309a4faac35883a64736f6c63430008110033",
    "sourceMap": "286:13585:18:-:0;;;1284:13;1266:31;;2490:2773;;;;;;;;;;;;;;;;;;:::i;:::-;2772:7;;2732:25;;;;2707:22;;;;2692:37;;:12;:37;:::i;:::-;:65;;;;:::i;:::-;:87;2675:176;;;2811:29;;-1:-1:-1;;;2811:29:18;;;;;;;;;;;2675:176;2861:9;:22;;;2929:9;2924:132;2948:23;;:30;2944:34;;2924:132;;;3041:4;2999:11;:39;3011:11;:23;;;3035:1;3011:26;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2999:39:18;;;;;;;;;;;-1:-1:-1;2999:39:18;:46;;-1:-1:-1;;2999:46:18;;;;;;;;;;2980:3;;;;:::i;:::-;;;;2924:132;;;;3119:9;3101:278;3150:11;:35;;;:42;3146:1;:46;3101:278;;;3292:4;3234:15;:55;3250:11;:35;;;3286:1;3250:38;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3234:55:18;-1:-1:-1;;;;;3234:55:18;;;;;;;;;;;;;:62;;;;;;;;;;;;;;;;;;3364:4;3310:11;:51;3322:11;:35;;;3358:1;3322:38;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3310:51:18;;;;;;;;;;;-1:-1:-1;3310:51:18;:58;;-1:-1:-1;;3310:58:18;;;;;;;;;;3206:3;;;;:::i;:::-;;;;3101:278;;;;3393:11;:41;;;3389:336;;;3472:9;3450:265;3507:11;:32;;;:39;3503:1;:43;3450:265;;;3696:4;3600:12;:49;3613:11;:32;;;3646:1;3613:35;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3600:49:18;;;;;;;;;;;-1:-1:-1;3600:49:18;:100;;-1:-1:-1;;3600:100:18;;;;;;;;;;3564:3;;;;:::i;:::-;;;;3450:265;;;;3389:336;3740:9;3735:135;3759:11;:24;;;:31;3755:1;:35;3735:135;;;3855:4;3811:12;:41;3824:11;:24;;;3849:1;3824:27;;;;;;;;:::i;:::-;;;;;;;3811:41;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;3792:3;;;;;:::i;:::-;;;;3735:135;;;-1:-1:-1;3911:40:18;;;;3880:71;;;;:28;;:71;;;;;;:::i;:::-;-1:-1:-1;3987:35:18;;;;3961:23;:61;4050:27;;;;4032:15;:45;4128:63;;;;;4087:38;:104;;4236:57;;;;4335:54;;;;-1:-1:-1;;4201:92:18;;;4087:104;;;;;;-1:-1:-1;;4201:92:18;;;;;;;;;;;;;;;;;-1:-1:-1;;4303:86:18;;;;;;;4413:23;;;;4399:11;;:37;;:11;:37;:::i;:::-;-1:-1:-1;4464:23:18;;4447:40;;;;:14;;:40;;;;;;:::i;:::-;-1:-1:-1;4517:4:18;4497:26;;;;:11;:26;;;;;:33;;-1:-1:-1;;4497:33:18;4526:4;4497:33;;;4554:22;;;;4541:10;:35;4610:33;;;;4586:21;:57;;-1:-1:-1;;;;;4586:57:18;;;-1:-1:-1;;;;;;4586:57:18;;;;;;;4669:25;;;;4653:13;:41;4704:11;:26;;;4740:22;:48;;;;;;;;;;;;;;;4872:23;;4842:53;;:15;:53;:::i;:::-;4799:28;:96;4924:1;4905:16;:20;;;4935:26;:30;;;4975:24;:28;;;5013:16;:20;;;5043:24;:28;;;5081:18;:22;5113:19;:27;;-1:-1:-1;;5150:44:18;;;5209:9;:13;5205:52;;5238:8;:6;:8::i;:::-;2490:2773;;;;286:13585;;5371:1551;5424:29;;;;:93;;;;-1:-1:-1;5483:10:18;5470:24;;;;:12;:24;;;;;:47;;;5469:48;5424:93;5407:178;;;5549:25;;-1:-1:-1;;;5549:25:18;;;;;;;;;;;5407:178;5618:15;;5598:16;;:35;5594:86;;5654:26;;-1:-1:-1;;;5654:26:18;;;;;;;;;;;5594:86;5707:10;5694:24;;;;:12;:24;;;;;:37;;;;;;5690:85;;;5752:23;;-1:-1:-1;;;5752:23:18;;;;;;;;;;;5690:85;5807:28;;5789:15;:46;5785:95;;;5856:24;;-1:-1:-1;;;5856:24:18;;;;;;;;;;;5785:95;5908:9;5895:23;;;;:12;:23;;;;;;;;5890:61;;5927:24;;-1:-1:-1;;;5927:24:18;;;;;;;;;;;5890:61;5999:163;;;;;;;;6049:4;5999:163;;;;;;;;;;5962:34;5999:163;;;;;;6142:9;5999:163;;;;;;6185:10;6172:24;;;:12;:24;;;;;;:42;;;;;;;;;;;;-1:-1:-1;;6172:42:18;;;;;-1:-1:-1;;6172:42:18;;;;;;;-1:-1:-1;;6172:42:18;;;;;;;;;;;;;;;;;;;;;;;;6224:15;:32;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6224:32:18;;;;;;6266:16;:18;;5999:163;;6266:18;;;:::i;:::-;;;;;;6314:9;6294:16;;:29;;;;;;;:::i;:::-;;;;;;;;6334:25;6362:93;6390:9;6413:11;;6438:7;;6362:14;;;;;:93;;:::i;:::-;6334:121;;6465:24;6492:92;6520:9;6543:10;;6567:7;;6492:14;;;;;:92;;:::i;:::-;6465:119;;6594:27;6624:95;6652:9;6675:13;;6702:7;;6624:14;;;;;:95;;:::i;:::-;6594:125;-1:-1:-1;6730:16:18;6594:125;6749:48;6781:16;6749:17;:48;:::i;:::-;:82;;;;:::i;:::-;6730:101;;6863:8;6841:18;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;6887:28:18;;6905:9;8923:25:30;;6893:10:18;;6887:28;;8911:2:30;8896:18;6887:28:18;;;;;;;5397:1525;;;;;5371:1551::o;15079:3983:15:-;15191:14;;;-1:-1:-1;;15680:1:15;15677;15670:20;15719:1;15716;15712:9;15703:18;;15770:5;15766:2;15763:13;15755:5;15751:2;15747:14;15743:34;15734:43;;;15860:5;15869:1;15860:10;15856:138;;15931:11;15923:5;:19;;;;;:::i;:::-;;15914:28;;15970:13;;;;15856:138;16101:11;16092:5;:20;16088:101;;16135:43;;-1:-1:-1;;;16135:43:15;;;;;9265:25:30;;;9306:18;;;9299:34;;;9238:18;;16135:43:15;;;;;;;16088:101;16424:17;16547:11;16544:1;16541;16534:25;17078:12;;17093:1;17078:16;;;17063:32;;17201:25;;;;;16696:21;;;17305:19;;;16653:20;;;;16642:32;;;17045:15;17467;;;17463:29;;;;17459:37;;;17585:15;;;;17576:24;;;;17937:1;:15;;17956:1;17936:21;;;18189;;;18185:25;;18174:36;18258:21;;;18254:25;;18243:36;18328:21;;;18324:25;;18313:36;18398:21;;;18394:25;;18383:36;18468:21;;;18464:25;;18453:36;18539:21;;;18535:25;;;18524:36;19003:15;;-1:-1:-1;;15079:3983:15;;;;;;:::o;286:13585:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;286:13585:18;-1:-1:-1;;;;;286:13585:18;;;;;;;;;;;-1:-1:-1;286:13585:18;;;;;;;-1:-1:-1;286:13585:18;;;-1:-1:-1;286:13585:18;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:30;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:255;218:2;212:9;260:6;248:19;;-1:-1:-1;;;;;282:34:30;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:2;373:22;146:255;:::o;406:275::-;477:2;471:9;542:2;523:13;;-1:-1:-1;;519:27:30;507:40;;-1:-1:-1;;;;;562:34:30;;598:22;;;559:62;556:88;;;624:18;;:::i;:::-;660:2;653:22;406:275;;-1:-1:-1;406:275:30:o;686:183::-;746:4;-1:-1:-1;;;;;768:30:30;;765:56;;;801:18;;:::i;:::-;-1:-1:-1;846:1:30;842:14;858:4;838:25;;686:183::o;874:177::-;953:13;;-1:-1:-1;;;;;995:31:30;;985:42;;975:70;;1041:1;1038;1031:12;975:70;874:177;;;:::o;1056:683::-;1121:5;1174:3;1167:4;1159:6;1155:17;1151:27;1141:55;;1192:1;1189;1182:12;1141:55;1221:6;1215:13;1247:4;1271:60;1287:43;1327:2;1287:43;:::i;:::-;1271:60;:::i;:::-;1365:15;;;1451:1;1447:10;;;;1435:23;;1431:32;;;1396:12;;;;1475:15;;;1472:35;;;1503:1;1500;1493:12;1472:35;1539:2;1531:6;1527:15;1551:159;1567:6;1562:3;1559:15;1551:159;;;1633:34;1663:3;1633:34;:::i;:::-;1621:47;;1688:12;;;;1584;;1551:159;;;-1:-1:-1;1728:5:30;1056:683;-1:-1:-1;;;;;;1056:683:30:o;1744:659::-;1809:5;1862:3;1855:4;1847:6;1843:17;1839:27;1829:55;;1880:1;1877;1870:12;1829:55;1909:6;1903:13;1935:4;1959:60;1975:43;2015:2;1975:43;:::i;1959:60::-;2053:15;;;2139:1;2135:10;;;;2123:23;;2119:32;;;2084:12;;;;2163:15;;;2160:35;;;2191:1;2188;2181:12;2160:35;2227:2;2219:6;2215:15;2239:135;2255:6;2250:3;2247:15;2239:135;;;2321:10;;2309:23;;2352:12;;;;2272;;2239:135;;2408:164;2484:13;;2533;;2526:21;2516:32;;2506:60;;2562:1;2559;2552:12;2577:650;2631:5;2684:3;2677:4;2669:6;2665:17;2661:27;2651:55;;2702:1;2699;2692:12;2651:55;2725:13;;-1:-1:-1;;;;;2750:26:30;;2747:52;;;2779:18;;:::i;:::-;2818:4;2846:53;2889:2;2870:13;;-1:-1:-1;;2866:27:30;2862:36;;2846:53;:::i;:::-;2924:2;2915:7;2908:19;2968:3;2963:2;2958;2950:6;2946:15;2942:24;2939:33;2936:53;;;2985:1;2982;2975:12;2936:53;3007:1;3017:134;3031:2;3028:1;3025:9;3017:134;;;3120:14;;;3116:23;;3110:30;3088:15;;;3084:24;;3077:64;3042:10;;3017:134;;;-1:-1:-1;3194:1:30;3171:16;;;3167:25;;;3160:36;;;;3175:7;2577:650;-1:-1:-1;;;2577:650:30:o;3232:2417::-;3369:6;3377;3385;3393;3446:3;3434:9;3425:7;3421:23;3417:33;3414:53;;;3463:1;3460;3453:12;3414:53;3486:16;;3546:2;3531:18;;3525:25;3486:16;;-1:-1:-1;;;;;;3599:14:30;;;3596:34;;;3626:1;3623;3616:12;3596:34;3649:22;;;;3705:6;3687:16;;;3683:29;3680:49;;;3725:1;3722;3715:12;3680:49;3751:22;;:::i;:::-;3804:2;3798:9;3832:2;3822:8;3819:16;3816:36;;;3848:1;3845;3838:12;3816:36;3875:67;3934:7;3923:8;3919:2;3915:17;3875:67;:::i;:::-;3868:5;3861:82;;3982:2;3978;3974:11;3968:18;4011:2;4001:8;3998:16;3995:36;;;4027:1;4024;4017:12;3995:36;4063:67;4122:7;4111:8;4107:2;4103:17;4063:67;:::i;:::-;4058:2;4051:5;4047:14;4040:91;;4170:2;4166;4162:11;4156:18;4199:2;4189:8;4186:16;4183:36;;;4215:1;4212;4205:12;4183:36;4251:67;4310:7;4299:8;4295:2;4291:17;4251:67;:::i;:::-;4246:2;4239:5;4235:14;4228:91;;4358:2;4354;4350:11;4344:18;4387:2;4377:8;4374:16;4371:36;;;4403:1;4400;4393:12;4371:36;4439:67;4498:7;4487:8;4483:2;4479:17;4439:67;:::i;:::-;4434:2;4427:5;4423:14;4416:91;;4546:3;4542:2;4538:12;4532:19;4576:2;4566:8;4563:16;4560:36;;;4592:1;4589;4582:12;4560:36;4629:67;4688:7;4677:8;4673:2;4669:17;4629:67;:::i;:::-;4623:3;4616:5;4612:15;4605:92;;4744:3;4740:2;4736:12;4730:19;4724:3;4717:5;4713:15;4706:44;4797:3;4793:2;4789:12;4783:19;4777:3;4770:5;4766:15;4759:44;4836:40;4871:3;4867:2;4863:12;4836:40;:::i;:::-;4830:3;4823:5;4819:15;4812:65;4896:3;4931:39;4966:2;4962;4958:11;4931:39;:::i;:::-;4915:14;;;4908:63;4990:3;5025:39;5052:11;;;5025:39;:::i;:::-;5009:14;;;5002:63;5084:3;5125:11;;;5119:18;5103:14;;;5096:42;5157:3;5192:42;5222:11;;;5192:42;:::i;:::-;5176:14;;;5169:66;5254:3;5295:11;;;5289:18;5273:14;;;5266:42;5327:3;5361:11;;;5355:18;5385:16;;;5382:36;;;5414:1;5411;5404:12;5382:36;5450:56;5498:7;5487:8;5483:2;5479:17;5450:56;:::i;:::-;5445:2;5438:5;5434:14;5427:80;;;5526:5;5516:15;;;;;5571:2;5560:9;5556:18;5550:25;5540:35;;5594:49;5639:2;5628:9;5624:18;5594:49;:::i;:::-;5584:59;;3232:2417;;;;;;;:::o;5654:127::-;5715:10;5710:3;5706:20;5703:1;5696:31;5746:4;5743:1;5736:15;5770:4;5767:1;5760:15;5786:125;5851:9;;;5872:10;;;5869:36;;;5885:18;;:::i;:::-;5786:125;;;;:::o;5916:127::-;5977:10;5972:3;5968:20;5965:1;5958:31;6008:4;6005:1;5998:15;6032:4;6029:1;6022:15;6048:135;6087:3;6108:17;;;6105:43;;6128:18;;:::i;:::-;-1:-1:-1;6175:1:30;6164:13;;6048:135::o;6188:380::-;6267:1;6263:12;;;;6310;;;6331:61;;6385:4;6377:6;6373:17;6363:27;;6331:61;6438:2;6430:6;6427:14;6407:18;6404:38;6401:161;;6484:10;6479:3;6475:20;6472:1;6465:31;6519:4;6516:1;6509:15;6547:4;6544:1;6537:15;6401:161;;6188:380;;;:::o;6699:545::-;6801:2;6796:3;6793:11;6790:448;;;6837:1;6862:5;6858:2;6851:17;6907:4;6903:2;6893:19;6977:2;6965:10;6961:19;6958:1;6954:27;6948:4;6944:38;7013:4;7001:10;6998:20;6995:47;;;-1:-1:-1;7036:4:30;6995:47;7091:2;7086:3;7082:12;7079:1;7075:20;7069:4;7065:31;7055:41;;7146:82;7164:2;7157:5;7154:13;7146:82;;;7209:17;;;7190:1;7179:13;7146:82;;;7150:3;;;6790:448;6699:545;;;:::o;7420:1352::-;7540:10;;-1:-1:-1;;;;;7562:30:30;;7559:56;;;7595:18;;:::i;:::-;7624:97;7714:6;7674:38;7706:4;7700:11;7674:38;:::i;:::-;7668:4;7624:97;:::i;:::-;7776:4;;7840:2;7829:14;;7857:1;7852:663;;;;8559:1;8576:6;8573:89;;;-1:-1:-1;8628:19:30;;;8622:26;8573:89;-1:-1:-1;;7377:1:30;7373:11;;;7369:24;7365:29;7355:40;7401:1;7397:11;;;7352:57;8675:81;;7822:944;;7852:663;6646:1;6639:14;;;6683:4;6670:18;;-1:-1:-1;;7888:20:30;;;8006:236;8020:7;8017:1;8014:14;8006:236;;;8109:19;;;8103:26;8088:42;;8201:27;;;;8169:1;8157:14;;;;8036:19;;8006:236;;;8010:3;8270:6;8261:7;8258:19;8255:201;;;8331:19;;;8325:26;-1:-1:-1;;8414:1:30;8410:14;;;8426:3;8406:24;8402:37;8398:42;8383:58;8368:74;;8255:201;-1:-1:-1;;;;;8502:1:30;8486:14;;;8482:22;8469:36;;-1:-1:-1;7420:1352:30:o;8959:127::-;9020:10;9015:3;9011:20;9008:1;9001:31;9051:4;9048:1;9041:15;9075:4;9072:1;9065:15;9091:248;286:13585:18;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x6080604052600436106101b75760003560e01c80637df7c74f116100ec578063b468aca71161008a578063db231a4f11610064578063db231a4f146104db578063dcfba2ba146104f0578063e548e3e714610510578063f3ac01b91461054057600080fd5b8063b468aca71461046b578063cebf058f1461048b578063d50267ee146104ab57600080fd5b8063922fce95116100c6578063922fce95146104065780639340fd511461042557806394409a561461043f578063aa546a9e1461045557600080fd5b80637df7c74f146103975780638b301e2b146103b65780638f57727d146103d657600080fd5b8063362f04c01161015957806356539f391161013357806356539f391461034e5780635d758d391461036357806360c6d8ae1461037957806377c936621461038f57600080fd5b8063362f04c01461030e5780633a4b66f1146103245780633ccd928a1461032e57600080fd5b8063157135661161019557806315713566146102945780631f7180dd146102be57806324924bf7146102e257806334908c16146102f857600080fd5b806303ee438c146101bc57806309e69ede146101e75780630e6fdaa11461025c575b600080fd5b3480156101c857600080fd5b506101d1610556565b6040516101de91906114ee565b60405180910390f35b3480156101f357600080fd5b50610234610202366004611558565b6002602052600090815260409020805460019091015460ff808316926101008104821692620100009091049091169084565b60408051941515855292151560208501529015159183019190915260608201526080016101de565b34801561026857600080fd5b5061027c610277366004611573565b6105e4565b6040516001600160a01b0390911681526020016101de565b3480156102a057600080fd5b506019546102ae9060ff1681565b60405190151581526020016101de565b3480156102ca57600080fd5b506102d460145481565b6040519081526020016101de565b3480156102ee57600080fd5b506102d460085481565b34801561030457600080fd5b506102d460175481565b34801561031a57600080fd5b506102d460135481565b61032c61060e565b005b34801561033a57600080fd5b5061027c610349366004611573565b610618565b34801561035a57600080fd5b506001546102d4565b34801561036f57600080fd5b506102d460075481565b34801561038557600080fd5b506102d460185481565b61032c610628565b3480156103a357600080fd5b506009546102ae90610100900460ff1681565b3480156103c257600080fd5b5061027c6103d1366004611573565b610699565b3480156103e257600080fd5b506102ae6103f1366004611558565b60046020526000908152604090205460ff1681565b34801561041257600080fd5b506019546102ae90610100900460ff1681565b34801561043157600080fd5b506009546102ae9060ff1681565b34801561044b57600080fd5b506102d460165481565b34801561046157600080fd5b506102d460155481565b34801561047757600080fd5b5061032c610486366004611669565b6106a9565b34801561049757600080fd5b506009546102ae9062010000900460ff1681565b3480156104b757600080fd5b506102ae6104c6366004611573565b60056020526000908152604090205460ff1681565b3480156104e757600080fd5b5061032c61086c565b3480156104fc57600080fd5b5061032c61050b3660046116a6565b61090b565b34801561051c57600080fd5b506102ae61052b366004611558565b60036020526000908152604090205460ff1681565b34801561054c57600080fd5b506102d460125481565b600a8054610563906116f4565b80601f016020809104026020016040519081016040528092919081815260200182805461058f906116f4565b80156105dc5780601f106105b1576101008083540402835291602001916105dc565b820191906000526020600020905b8154815290600101906020018083116105bf57829003601f168201915b505050505081565b601081815481106105f457600080fd5b6000918252602090912001546001600160a01b0316905081565b610616610bcd565b565b601181815481106105f457600080fd5b60125442111561064b576040516362ca2fcd60e01b815260040160405180910390fd5b346015600082825461065d9190611744565b909155505060405134815233907f74194cee4daf68c6858b41efe9729cf57988cee7f447442f39a1e2adafd4e0219060200160405180910390a2565b600681815481106105f457600080fd5b3360009081526003602052604090205460ff166106d9576040516364f5dc8560e01b815260040160405180910390fd5b6012544211156106fc576040516362ca2fcd60e01b815260040160405180910390fd5b60005b81518110156107da576002600083838151811061071e5761071e61175d565b6020908102919091018101516001600160a01b0316825281019190915260400160002054610100900460ff16610767576040516379c6621560e01b815260040160405180910390fd5b6002600083838151811061077d5761077d61175d565b6020908102919091018101516001600160a01b031682528101919091526040016000205462010000900460ff16156107c8576040516379c6621560e01b815260040160405180910390fd5b806107d281611773565b9150506106ff565b5060005b81518110156108215760008282815181106107fb576107fb61175d565b6020026020010151905061080e81610e41565b508061081981611773565b9150506107de565b506019805460ff1916600117905560405133907f440c93edea69d1cf0502a6e259d2bcaf3e0a4f16428ddd3b6f5b68081e27eea3906108619084906117d0565b60405180910390a250565b601254421161088e5760405163066a900960e21b815260040160405180910390fd5b601954610100900460ff16156108b7576040516376e5413b60e11b815260040160405180910390fd5b6108bf610fed565b6108c7611174565b6108cf611323565b6019805461ff00191661010017905560405133907f8e4581edbcde6e54b523f4d359eb0eff7308e8d3e14ff8eac7e7705b4b98a62a90600090a2565b6001600160a01b03821660009081526004602052604090205460ff166109445760405163d67d8ec560e01b815260040160405180910390fd5b60405163091f613f60e11b8152829060009081906001600160a01b0384169063123ec27e906109779087906004016117d0565b600060405180830381865afa158015610994573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109bc91908101906117e3565b9150915060008167ffffffffffffffff8111156109db576109db61158c565b604051908082528060200260200182016040528015610a04578160200160208202803683370190505b5090506000805b8451811015610a9757848181518110610a2657610a2661175d565b602002602001015115610a8557868181518110610a4557610a4561175d565b6020026020010151838381518110610a5f57610a5f61175d565b6001600160a01b039092166020928302919091019091015281610a8181611773565b9250505b80610a8f81611773565b915050610a0b565b5060405163b468aca760e01b8152309063b468aca790610abb9085906004016117d0565b600060405180830381600087803b158015610ad557600080fd5b505af1158015610ae9573d6000803e3d6000fd5b5050505050505050505050565b6000808060001985870985870292508281108382030391505080600003610b3057838281610b2657610b2661188b565b0492505050610bc6565b838110610b5e57604051631dcf306360e21b8152600481018290526024810185905260440160405180910390fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b60095460ff168015610bef57503360009081526002602052604090205460ff16155b15610c0d57604051631939666560e21b815260040160405180910390fd5b60085460135410610c3157604051631e74b6b760e11b815260040160405180910390fd5b33600090815260026020526040902054610100900460ff1615610c6757604051635fdadce760e01b815260040160405180910390fd5b601254421115610c8a576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526005602052604090205460ff16610cba57604051630be5378760e21b815260040160405180910390fd5b60408051608081018252600180825260208083018281526000848601818152346060870190815233808452600290955296822086518154945192511515620100000262ff0000199315156101000261ff00199215159290921661ffff1990961695909517179190911692909217825594519083015560108054928301815584527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67290910180546001600160a01b0319169091179055601380549192610d7e83611773565b91905055503460166000828254610d959190611744565b925050819055506000610dad34600e54600054610af6565b90506000610dc034600b54600054610af6565b90506000610dd334600d54600054610af6565b9050600081610de28486611744565b610dec9190611744565b90508060186000828254610e009190611744565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a25050505050565b6001600160a01b03811660009081526002602090815260408083208151608081018352815460ff80821615158352610100820481161515958301959095526201000090049093161515918301919091526001015460608201819052600e548354929392610eaf929190610af6565b90506000610ec68360600151600b54600054610af6565b90506000610edd8460600151600d54600054610af6565b9050600081610eec8486611744565b610ef69190611744565b90506000818660600151610f0a91906118a1565b6040519091506001600160a01b0388169082156108fc029083906000818181858888f19350505050158015610f43573d6000803e3d6000fd5b506001600160a01b0387166000908152600260205260408120805462ff00001916620100001790556014805491610f7983611773565b91905055508060176000828254610f909190611744565b9091555050606080870151604080519182526020820185905281018390526001600160a01b038916917f3c6d034538fc1be4c1c02283083c593ad4546ace8a6713cb5fb2ecb705a41446910160405180910390a250505050505050565b6014541561061657600060145460155461100791906118b4565b9050600060145467ffffffffffffffff8111156110265761102661158c565b60405190808252806020026020018201604052801561104f578160200160208202803683370190505b5090506000805b60135481101561112f576000601082815481106110755761107561175d565b60009182526020808320909101546001600160a01b0316808352600290915260409091205490915060ff62010000909104161561111c576040516001600160a01b0382169086156108fc029087906000818181858888f193505050501580156110e2573d6000803e3d6000fd5b50808484815181106110f6576110f661175d565b6001600160a01b03909216602092830291909101909101528261111881611773565b9350505b508061112781611773565b915050611056565b5060155460405133917f2114d896257ce5a58e1c18ae0d1cb1bd56f2f18c8b5a78e4541b48f40883b5af9161116791869188906118d6565b60405180910390a2505050565b6000611187601654600e54600054610af6565b9050600061119c601654600b54600054610af6565b905060006111b1601654600d54600054610af6565b6011549091506000906111c490836118b4565b9050831561120857600f546040516001600160a01b039091169085156108fc029086906000818181858888f19350505050158015611206573d6000803e3d6000fd5b505b821561124a57600c546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015611248573d6000803e3d6000fd5b505b81156112c55760005b6011548110156112c357601181815481106112705761127061175d565b60009182526020822001546040516001600160a01b039091169184156108fc02918591818181858888f193505050501580156112b0573d6000803e3d6000fd5b50806112bb81611773565b915050611253565b505b600f54600c5460405133927ff50e8e029e43d877ce362cea5cb5693fcf553b41d0bc26d03ee286b56964bafb926113159289926001600160a01b03908116928a9291169089906011908a906118fb565b60405180910390a250505050565b600060145460135461133591906118a1565b11156106165760095460609062010000900460ff168015611359575060195460ff16155b156113c05760108054806020026020016040519081016040528092919081815260200182805480156113b457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611396575b5050505050905061141e565b600680548060200260200160405190810160405280929190818152602001828054801561141657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113f8575b505050505090505b601454601354479160009161143391906118a1565b61143d90836118b4565b905060005b83518110156114b05783818151811061145d5761145d61175d565b60200260200101516001600160a01b03166108fc839081150290604051600060405180830381858888f1935050505015801561149d573d6000803e3d6000fd5b50806114a881611773565b915050611442565b50336001600160a01b03167f1a50eba3476dd09ccdbee500a30b43381479c55b92f8ea25850f819ec591a520848484604051611167939291906118d6565b600060208083528351808285015260005b8181101561151b578581018301518582016040015282016114ff565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461155357600080fd5b919050565b60006020828403121561156a57600080fd5b610bc68261153c565b60006020828403121561158557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156115cb576115cb61158c565b604052919050565b600067ffffffffffffffff8211156115ed576115ed61158c565b5060051b60200190565b600082601f83011261160857600080fd5b8135602061161d611618836115d3565b6115a2565b82815260059290921b8401810191818101908684111561163c57600080fd5b8286015b8481101561165e576116518161153c565b8352918301918301611640565b509695505050505050565b60006020828403121561167b57600080fd5b813567ffffffffffffffff81111561169257600080fd5b61169e848285016115f7565b949350505050565b600080604083850312156116b957600080fd5b6116c28361153c565b9150602083013567ffffffffffffffff8111156116de57600080fd5b6116ea858286016115f7565b9150509250929050565b600181811c9082168061170857607f821691505b60208210810361172857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156117575761175761172e565b92915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016117855761178561172e565b5060010190565b600081518084526020808501945080840160005b838110156117c55781516001600160a01b0316875295820195908201906001016117a0565b509495945050505050565b602081526000610bc6602083018461178c565b600080604083850312156117f657600080fd5b825167ffffffffffffffff81111561180d57600080fd5b8301601f8101851361181e57600080fd5b8051602061182e611618836115d3565b82815260059290921b8301810191818101908884111561184d57600080fd5b938201935b8385101561187a578451801515811461186b5760008081fd5b82529382019390820190611852565b969091015195979596505050505050565b634e487b7160e01b600052601260045260246000fd5b818103818111156117575761175761172e565b6000826118d157634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006118e9606083018661178c565b60208301949094525060400152919050565b600060e08201898352602060018060a01b03808b1682860152896040860152808916606086015287608086015260e060a0860152828754808552610100870191508860005283600020945060005b81811015611967578554841683526001958601959285019201611949565b5050809450505050508260c08301529897505050505050505056fea26469706673582212209a4c52bf904012786dbf4b13678b4ede180c0089fbc1fbf7a309a4faac35883a64736f6c63430008110033",
    "sourceMap": "286:13585:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1822:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1328:51;;;;;;;;;;-1:-1:-1;1328:51:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1174:14:30;;1167:22;1149:41;;1233:14;;1226:22;1221:2;1206:18;;1199:50;1292:14;;1285:22;1265:18;;;1258:50;;;;1339:2;1324:18;;1317:34;1136:3;1121:19;1328:51:18;936:421:30;2024:32:18;;;;;;;;;;-1:-1:-1;2024:32:18;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1711:32:30;;;1693:51;;1681:2;1666:18;2024:32:18;1547:203:30;2398:31:18;;;;;;;;;;-1:-1:-1;2398:31:18;;;;;;;;;;;1920:14:30;;1913:22;1895:41;;1883:2;1868:18;2398:31:18;1755:187:30;2185:41:18;;;;;;;;;;;;;;;;;;;2093:25:30;;;2081:2;2066:18;2185:41:18;1947:177:30;1633:30:18;;;;;;;;;;;;;;;;2314:39;;;;;;;;;;;;;;;;2148:31;;;;;;;;;;;;;;;;6928:59;;;:::i;:::-;;2062:31;;;;;;;;;;-1:-1:-1;2062:31:18;;;;;:::i;:::-;;:::i;5269:96::-;;;;;;;;;;-1:-1:-1;5349:9:18;;5269:96;;1589:38;;;;;;;;;;;;;;;;2359:33;;;;;;;;;;;;;;;;6993:241;;;:::i;1716:50::-;;;;;;;;;;-1:-1:-1;1716:50:18;;;;;;;;;;;1538:45;;;;;;;;;;-1:-1:-1;1538:45:18;;;;;:::i;:::-;;:::i;1434:47::-;;;;;;;;;;-1:-1:-1;1434:47:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;2435:48;;;;;;;;;;-1:-1:-1;2435:48:18;;;;;;;;;;;1669:41;;;;;;;;;;-1:-1:-1;1669:41:18;;;;;;;;2277:31;;;;;;;;;;;;;;;;2232:39;;;;;;;;;;;;;;;;8418:839;;;;;;;;;;-1:-1:-1;8418:839:18;;;;;:::i;:::-;;:::i;1772:44::-;;;;;;;;;;-1:-1:-1;1772:44:18;;;;;;;;;;;1487;;;;;;;;;;-1:-1:-1;1487:44:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;13357:512;;;;;;;;;;;;;:::i;9263:847::-;;;;;;;;;;-1:-1:-1;9263:847:18;;;;;:::i;:::-;;:::i;1385:43::-;;;;;;;;;;-1:-1:-1;1385:43:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;2099;;;;;;;;;;;;;;;;1822:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2024:32::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2024:32:18;;-1:-1:-1;2024:32:18;:::o;6928:59::-;6972:8;:6;:8::i;:::-;6928:59::o;2062:31::-;;;;;;;;;;;;6993:241;7061:28;;7043:15;:46;7039:95;;;7110:24;;-1:-1:-1;;;7110:24:18;;;;;;;;;;;7039:95;7172:9;7144:24;;:37;;;;;;;:::i;:::-;;;;-1:-1:-1;;7197:30:18;;7217:9;2093:25:30;;7205:10:18;;7197:30;;2081:2:30;2066:18;7197:30:18;;;;;;;6993:241::o;1538:45::-;;;;;;;;;;;;8418:839;8518:10;8506:23;;;;:11;:23;;;;;;;;8501:63;;8538:26;;-1:-1:-1;;;8538:26:18;;;;;;;;;;;8501:63;8596:28;;8578:15;:46;8574:95;;;8645:24;;-1:-1:-1;;;8645:24:18;;;;;;;;;;;8574:95;8684:9;8679:274;8703:13;:20;8699:1;:24;8679:274;;;8749:12;:30;8762:13;8776:1;8762:16;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;8749:30:18;;;;;;;;;;;-1:-1:-1;8749:30:18;:43;;;;;;8744:94;;8817:21;;-1:-1:-1;;;8817:21:18;;;;;;;;;;;8744:94;8856:12;:30;8869:13;8883:1;8869:16;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;8856:30:18;;;;;;;;;;;-1:-1:-1;8856:30:18;:40;;;;;;8852:90;;;8921:21;;-1:-1:-1;;;8921:21:18;;;;;;;;;;;8852:90;8725:3;;;;:::i;:::-;;;;8679:274;;;;8968:9;8963:187;8987:13;:20;8983:1;:24;8963:187;;;9028:36;9067:13;9081:1;9067:16;;;;;;;;:::i;:::-;;;;;;;9028:55;;9097:42;9110:28;9097:12;:42::i;:::-;-1:-1:-1;9009:3:18;;;;:::i;:::-;;;;8963:187;;;-1:-1:-1;9159:19:18;:26;;-1:-1:-1;;9159:26:18;9181:4;9159:26;;;9201:49;;9224:10;;9201:49;;;;9236:13;;9201:49;:::i;:::-;;;;;;;;8418:839;:::o;13357:512::-;13443:28;;13424:15;:47;13420:100;;13492:28;;-1:-1:-1;;;13492:28:18;;;;;;;;;;;13420:100;13534:36;;;;;;;13530:113;;;13591:52;;-1:-1:-1;;;13591:52:18;;;;;;;;;;;13530:113;13653:32;:30;:32::i;:::-;13695:17;:15;:17::i;:::-;13722:28;:26;:28::i;:::-;13760:36;:43;;-1:-1:-1;;13760:43:18;;;;;13818:44;;13851:10;;13818:44;;13760:43;;13818:44;13357:512::o;9263:847::-;-1:-1:-1;;;;;9387:32:18;;;;;;:15;:32;;;;;;;;9382:71;;9428:25;;-1:-1:-1;;;9428:25:18;;;;;;;;;;;9382:71;9633:60;;-1:-1:-1;;;9633:60:18;;9547:15;;9463:41;;;;-1:-1:-1;;;;;9633:45:18;;;;;:60;;9679:13;;9633:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9633:60:18;;;;;;;;;;;;:::i;:::-;9582:111;;;;9703:39;9772:15;9745:52;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9745:52:18;;9703:94;;9807:19;9845:9;9840:203;9864:7;:14;9860:1;:18;9840:203;;;9903:7;9911:1;9903:10;;;;;;;;:::i;:::-;;;;;;;9899:134;;;9971:13;9985:1;9971:16;;;;;;;;:::i;:::-;;;;;;;9933:22;9956:11;9933:35;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9933:54:18;;;:35;;;;;;;;;;;:54;10005:13;;;;:::i;:::-;;;;9899:134;9880:3;;;;:::i;:::-;;;;9840:203;;;-1:-1:-1;10052:51:18;;-1:-1:-1;;;10052:51:18;;:4;;:27;;:51;;10080:22;;10052:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9372:738;;;;;9263:847;;:::o;15079:3983:15:-;15191:14;;;-1:-1:-1;;15680:1:15;15677;15670:20;15719:1;15716;15712:9;15703:18;;15770:5;15766:2;15763:13;15755:5;15751:2;15747:14;15743:34;15734:43;;;15860:5;15869:1;15860:10;15856:138;;15931:11;15923:5;:19;;;;;:::i;:::-;;15914:28;;15970:13;;;;15856:138;16101:11;16092:5;:20;16088:101;;16135:43;;-1:-1:-1;;;16135:43:15;;;;;7259:25:30;;;7300:18;;;7293:34;;;7232:18;;16135:43:15;;;;;;;16088:101;16424:17;16547:11;16544:1;16541;16534:25;17078:12;;17093:1;17078:16;;;17063:32;;17201:25;;;;;16696:21;;;17305:19;;;16653:20;;;;16642:32;;;17045:15;17467;;;17463:29;;;;17459:37;;;17585:15;;;;17576:24;;;;17937:1;:15;;17956:1;17936:21;;;18189;;;18185:25;;18174:36;18258:21;;;18254:25;;18243:36;18328:21;;;18324:25;;18313:36;18398:21;;;18394:25;;18383:36;18468:21;;;18464:25;;18453:36;18539:21;;;18535:25;;;18524:36;19003:15;;-1:-1:-1;;15079:3983:15;;;;;;:::o;5371:1551:18:-;5424:29;;;;:93;;;;-1:-1:-1;5483:10:18;5470:24;;;;:12;:24;;;;;:47;;;5469:48;5424:93;5407:178;;;5549:25;;-1:-1:-1;;;5549:25:18;;;;;;;;;;;5407:178;5618:15;;5598:16;;:35;5594:86;;5654:26;;-1:-1:-1;;;5654:26:18;;;;;;;;;;;5594:86;5707:10;5694:24;;;;:12;:24;;;;;:37;;;;;;5690:85;;;5752:23;;-1:-1:-1;;;5752:23:18;;;;;;;;;;;5690:85;5807:28;;5789:15;:46;5785:95;;;5856:24;;-1:-1:-1;;;5856:24:18;;;;;;;;;;;5785:95;5908:9;5895:23;;;;:12;:23;;;;;;;;5890:61;;5927:24;;-1:-1:-1;;;5927:24:18;;;;;;;;;;;5890:61;5999:163;;;;;;;;6049:4;5999:163;;;;;;;;;;5962:34;5999:163;;;;;;6142:9;5999:163;;;;;;6185:10;6172:24;;;:12;:24;;;;;;:42;;;;;;;;;;;;-1:-1:-1;;6172:42:18;;;;;-1:-1:-1;;6172:42:18;;;;;;;-1:-1:-1;;6172:42:18;;;;;;;;;;;;;;;;;;;;;;;;6224:15;:32;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6224:32:18;;;;;;6266:16;:18;;5999:163;;6266:18;;;:::i;:::-;;;;;;6314:9;6294:16;;:29;;;;;;;:::i;:::-;;;;;;;;6334:25;6362:93;6390:9;6413:11;;6438:7;;6362:14;:93::i;:::-;6334:121;;6465:24;6492:92;6520:9;6543:10;;6567:7;;6492:14;:92::i;:::-;6465:119;;6594:27;6624:95;6652:9;6675:13;;6702:7;;6624:14;:95::i;:::-;6594:125;-1:-1:-1;6730:16:18;6594:125;6749:48;6781:16;6749:17;:48;:::i;:::-;:82;;;;:::i;:::-;6730:101;;6863:8;6841:18;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;6887:28:18;;6905:9;2093:25:30;;6893:10:18;;6887:28;;2081:2:30;2066:18;6887:28:18;;;;;;;5397:1525;;;;;5371:1551::o;7240:1172::-;-1:-1:-1;;;;;7344:33:18;;7310:31;7344:33;;;:12;:33;;;;;;;;7310:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7525:11;;7550:7;;7310:67;;:31;7459:108;;7310:67;7525:11;7459:14;:108::i;:::-;7431:136;;7577:24;7604:107;7632:12;:24;;;7670:10;;7694:7;;7604:14;:107::i;:::-;7577:134;;7721:27;7751:110;7779:12;:24;;;7817:13;;7844:7;;7751:14;:110::i;:::-;7721:140;-1:-1:-1;7871:16:18;7721:140;7890:48;7922:16;7890:17;:48;:::i;:::-;:82;;;;:::i;:::-;7871:101;;7982:20;8032:8;8005:12;:24;;;:35;;;;:::i;:::-;8050:51;;7982:58;;-1:-1:-1;;;;;;8050:37:18;;;:51;;;;;7982:58;;8050:51;;;;7982:58;8050:37;:51;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8111:33:18;;;;;;:12;:33;;;;;:50;;-1:-1:-1;;8111:50:18;;;;;8171:26;:28;;;;;;:::i;:::-;;;;;;8237:12;8209:24;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;8323:24:18;;;;;8265:140;;;7673:25:30;;;7729:2;7714:18;;7707:34;;;7757:18;;7750:34;;;-1:-1:-1;;;;;8265:140:18;;;;;7646:18:30;8265:140:18;;;;;;;7300:1112;;;;;;7240:1172;:::o;12383:968::-;12448:26;;:30;12444:901;;12494:24;12564:26;;12521:24;;:69;;;;:::i;:::-;12494:96;;12604:30;12668:26;;12637:71;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12637:71:18;;12604:104;;12722:24;12769:9;12764:373;12788:16;;12784:1;:20;12764:373;;;12829:19;12851:15;12867:1;12851:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12851:18:18;12891:25;;;:12;:25;;;;;;;:35;12851:18;;-1:-1:-1;12891:35:18;;;;;;12887:236;;;12950:47;;-1:-1:-1;;;;;12950:29:18;;;:47;;;;;12980:16;;12950:47;;;;12980:16;12950:29;:47;;;;;;;;;;;;;;;;;;;;;13053:11;13019:13;13033:16;13019:31;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13019:45:18;;;:31;;;;;;;;;;;:45;13086:18;;;;:::i;:::-;;;;12887:236;-1:-1:-1;12806:3:18;;;;:::i;:::-;;;;12764:373;;;-1:-1:-1;13262:24:18;;13156:178;;13203:10;;13156:178;;;;13231:13;;13304:16;;13156:178;:::i;:::-;;;;;;;;12480:865;;;12383:968::o;11117:1260::-;11163:25;11191:100;11219:16;;11249:11;;11274:7;;11191:14;:100::i;:::-;11163:128;;11301:24;11328:99;11356:16;;11386:10;;11410:7;;11328:14;:99::i;:::-;11301:126;;11437:27;11467:102;11495:16;;11525:13;;11552:7;;11467:14;:102::i;:::-;11627:14;:21;11437:132;;-1:-1:-1;11579:23:18;;11605:43;;11437:132;11605:43;:::i;:::-;11579:69;-1:-1:-1;11662:21:18;;11658:111;;11707:22;;11699:59;;-1:-1:-1;;;;;11707:22:18;;;;11699:59;;;;;11740:17;;11707:22;11699:59;11707:22;11699:59;11740:17;11707:22;11699:59;;;;;;;;;;;;;;;;;;;;;11658:111;11782:20;;11778:108;;11826:21;;11818:57;;-1:-1:-1;;;;;11826:21:18;;;;11818:57;;;;;11858:16;;11826:21;11818:57;11826:21;11818:57;11858:16;11826:21;11818:57;;;;;;;;;;;;;;;;;;;;;11778:108;11899:23;;11895:190;;11943:9;11938:137;11962:14;:21;11958:25;;11938:137;;;12016:14;12031:1;12016:17;;;;;;;;:::i;:::-;;;;;;;;;;12008:52;;-1:-1:-1;;;;;12016:17:18;;;;12008:52;;;;;12044:15;;12008:52;12016:17;12008:52;12044:15;12016:17;12008:52;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11985:3:18;;;;:::i;:::-;;;;11938:137;;;;11895:190;12183:22;;12249:21;;12100:270;;12128:10;;12100:270;;;;12152:17;;-1:-1:-1;;;;;12183:22:18;;;;12219:16;;12249:21;;;12284:19;;12317:14;;12345:15;;12100:270;:::i;:::-;;;;;;;;11153:1224;;;;11117:1260::o;10116:995::-;10225:1;10196:26;;10177:16;;:45;;;;:::i;:::-;:49;10173:932;;;10290:32;;10242:30;;10290:32;;;;;:56;;;;-1:-1:-1;10327:19:18;;;;10326:20;10290:56;10286:292;;;10465:15;10449:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10449:31:18;;;;;;;;;;;;;;;;;;;;;;;10286:292;;;10535:28;10519:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10519:44:18;;;;;;;;;;;;;;;;;;;;;;;10286:292;10733:26;;10714:16;;10617:21;;10591:23;;10714:45;;10733:26;10714:45;:::i;:::-;10679:81;;:15;:81;:::i;:::-;10652:108;;10779:9;10774:136;10798:13;:20;10794:1;:24;10774:136;;;10851:13;10865:1;10851:16;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;10843:34:18;:52;10878:16;10843:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10820:3:18;;;;:::i;:::-;;;;10774:136;;;;10972:10;-1:-1:-1;;;;;10929:165:18;;11000:13;11031:15;11064:16;10929:165;;;;;;;;:::i;14:548:30:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:30;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:186::-;804:6;857:2;845:9;836:7;832:23;828:32;825:52;;;873:1;870;863:12;825:52;896:29;915:9;896:29;:::i;1362:180::-;1421:6;1474:2;1462:9;1453:7;1449:23;1445:32;1442:52;;;1490:1;1487;1480:12;1442:52;-1:-1:-1;1513:23:30;;1362:180;-1:-1:-1;1362:180:30:o;2129:127::-;2190:10;2185:3;2181:20;2178:1;2171:31;2221:4;2218:1;2211:15;2245:4;2242:1;2235:15;2261:275;2332:2;2326:9;2397:2;2378:13;;-1:-1:-1;;2374:27:30;2362:40;;2432:18;2417:34;;2453:22;;;2414:62;2411:88;;;2479:18;;:::i;:::-;2515:2;2508:22;2261:275;;-1:-1:-1;2261:275:30:o;2541:183::-;2601:4;2634:18;2626:6;2623:30;2620:56;;;2656:18;;:::i;:::-;-1:-1:-1;2701:1:30;2697:14;2713:4;2693:25;;2541:183::o;2729:668::-;2783:5;2836:3;2829:4;2821:6;2817:17;2813:27;2803:55;;2854:1;2851;2844:12;2803:55;2890:6;2877:20;2916:4;2940:60;2956:43;2996:2;2956:43;:::i;:::-;2940:60;:::i;:::-;3034:15;;;3120:1;3116:10;;;;3104:23;;3100:32;;;3065:12;;;;3144:15;;;3141:35;;;3172:1;3169;3162:12;3141:35;3208:2;3200:6;3196:15;3220:148;3236:6;3231:3;3228:15;3220:148;;;3302:23;3321:3;3302:23;:::i;:::-;3290:36;;3346:12;;;;3253;;3220:148;;;-1:-1:-1;3386:5:30;2729:668;-1:-1:-1;;;;;;2729:668:30:o;3402:348::-;3486:6;3539:2;3527:9;3518:7;3514:23;3510:32;3507:52;;;3555:1;3552;3545:12;3507:52;3595:9;3582:23;3628:18;3620:6;3617:30;3614:50;;;3660:1;3657;3650:12;3614:50;3683:61;3736:7;3727:6;3716:9;3712:22;3683:61;:::i;:::-;3673:71;3402:348;-1:-1:-1;;;;3402:348:30:o;3755:422::-;3848:6;3856;3909:2;3897:9;3888:7;3884:23;3880:32;3877:52;;;3925:1;3922;3915:12;3877:52;3948:29;3967:9;3948:29;:::i;:::-;3938:39;;4028:2;4017:9;4013:18;4000:32;4055:18;4047:6;4044:30;4041:50;;;4087:1;4084;4077:12;4041:50;4110:61;4163:7;4154:6;4143:9;4139:22;4110:61;:::i;:::-;4100:71;;;3755:422;;;;;:::o;4182:380::-;4261:1;4257:12;;;;4304;;;4325:61;;4379:4;4371:6;4367:17;4357:27;;4325:61;4432:2;4424:6;4421:14;4401:18;4398:38;4395:161;;4478:10;4473:3;4469:20;4466:1;4459:31;4513:4;4510:1;4503:15;4541:4;4538:1;4531:15;4395:161;;4182:380;;;:::o;4567:127::-;4628:10;4623:3;4619:20;4616:1;4609:31;4659:4;4656:1;4649:15;4683:4;4680:1;4673:15;4699:125;4764:9;;;4785:10;;;4782:36;;;4798:18;;:::i;:::-;4699:125;;;;:::o;4829:127::-;4890:10;4885:3;4881:20;4878:1;4871:31;4921:4;4918:1;4911:15;4945:4;4942:1;4935:15;4961:135;5000:3;5021:17;;;5018:43;;5041:18;;:::i;:::-;-1:-1:-1;5088:1:30;5077:13;;4961:135::o;5101:461::-;5154:3;5192:5;5186:12;5219:6;5214:3;5207:19;5245:4;5274:2;5269:3;5265:12;5258:19;;5311:2;5304:5;5300:14;5332:1;5342:195;5356:6;5353:1;5350:13;5342:195;;;5421:13;;-1:-1:-1;;;;;5417:39:30;5405:52;;5477:12;;;;5512:15;;;;5453:1;5371:9;5342:195;;;-1:-1:-1;5553:3:30;;5101:461;-1:-1:-1;;;;;5101:461:30:o;5567:261::-;5746:2;5735:9;5728:21;5709:4;5766:56;5818:2;5807:9;5803:18;5795:6;5766:56;:::i;5833:1115::-;5934:6;5942;5995:2;5983:9;5974:7;5970:23;5966:32;5963:52;;;6011:1;6008;6001:12;5963:52;6044:9;6038:16;6077:18;6069:6;6066:30;6063:50;;;6109:1;6106;6099:12;6063:50;6132:22;;6185:4;6177:13;;6173:27;-1:-1:-1;6163:55:30;;6214:1;6211;6204:12;6163:55;6243:2;6237:9;6265:4;6289:60;6305:43;6345:2;6305:43;:::i;6289:60::-;6383:15;;;6465:1;6461:10;;;;6453:19;;6449:28;;;6414:12;;;;6489:19;;;6486:39;;;6521:1;6518;6511:12;6486:39;6545:11;;;;6565:309;6581:6;6576:3;6573:15;6565:309;;;6654:3;6648:10;6705:5;6698:13;6691:21;6684:5;6681:32;6671:130;;6755:1;6784:2;6780;6773:14;6671:130;6814:18;;6598:12;;;;6852;;;;6565:309;;;6923:18;;;;6917:25;6893:5;;6917:25;;-1:-1:-1;;;;;;5833:1115:30:o;6953:127::-;7014:10;7009:3;7005:20;7002:1;6995:31;7045:4;7042:1;7035:15;7069:4;7066:1;7059:15;7338:128;7405:9;;;7426:11;;;7423:37;;;7440:18;;:::i;7795:217::-;7835:1;7861;7851:132;;7905:10;7900:3;7896:20;7893:1;7886:31;7940:4;7937:1;7930:15;7968:4;7965:1;7958:15;7851:132;-1:-1:-1;7997:9:30;;7795:217::o;8017:403::-;8252:2;8241:9;8234:21;8215:4;8272:56;8324:2;8313:9;8309:18;8301:6;8272:56;:::i;:::-;8359:2;8344:18;;8337:34;;;;-1:-1:-1;8402:2:30;8387:18;8380:34;8264:64;8017:403;-1:-1:-1;8017:403:30:o;8425:1152::-;8732:4;8780:3;8769:9;8765:19;8811:6;8800:9;8793:25;8837:2;8875:1;8871;8866:3;8862:11;8858:19;8925:2;8917:6;8913:15;8908:2;8897:9;8893:18;8886:43;8965:6;8960:2;8949:9;8945:18;8938:34;9020:2;9012:6;9008:15;9003:2;8992:9;8988:18;8981:43;9061:6;9055:3;9044:9;9040:19;9033:35;9105:3;9099;9088:9;9084:19;9077:32;9129:6;9164;9158:13;9195:6;9187;9180:22;9233:3;9222:9;9218:19;9211:26;;9256:6;9253:1;9246:17;9299:2;9296:1;9286:16;9272:30;;9320:1;9330:177;9344:6;9341:1;9338:13;9330:177;;;9409:13;;9405:22;;9393:35;;9495:1;9483:14;;;;9448:12;;;;9359:9;9330:177;;;9334:3;;9524;9516:11;;;;;;9564:6;9558:3;9547:9;9543:19;9536:35;8425:1152;;;;;;;;;;:::o",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "PROJECT_ID()": "56539f39",
    "approveForParticipants(address[])": "b468aca7",
    "checkOracle(address,address[])": "dcfba2ba",
    "completingParticipantCount()": "1f7180dd",
    "completionWindowEndTimestamp()": "f3ac01b9",
    "completionWindowSeconds()": "5d758d39",
    "isPostReturnWindowDistributionCalled()": "922fce95",
    "isReturnStakeCalled()": "15713566",
    "maxParticipants()": "24924bf7",
    "metadataURI()": "03ee438c",
    "oracleDelegates(address)": "8f57727d",
    "participantCount()": "362f04c0",
    "participantList(uint256)": "0e6fdaa1",
    "participants(address)": "09e69ede",
    "postCompletionWindowDistribution()": "db231a4f",
    "shouldParticipantsShareUnreturnedStake()": "7df7c74f",
    "shouldUseParticipantAllowList()": "9340fd51",
    "shouldUseSupervisorInactionGuard()": "cebf058f",
    "sponsor()": "77c93662",
    "stake()": "3a4b66f1",
    "stakingTiers(uint256)": "d50267ee",
    "supervisorList(uint256)": "3ccd928a",
    "supervisors(address)": "e548e3e7",
    "totalFeesCollected()": "60c6d8ae",
    "totalReturnedStakeAmount()": "34908c16",
    "totalSponsorContribution()": "aa546a9e",
    "totalStakeAmount()": "94409a56",
    "unreturnedStakeBeneficiaries(uint256)": "8b301e2b"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_projectId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"supervisors\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"participantAllowList\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"unreturnedStakeBeneficiaries\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"oracleDelegateAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"stakingTiers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"completionWindowSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxParticipants\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"shouldUseParticipantAllowList\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"shouldParticipantsShareUnreturnedStake\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"shouldUseSupervisorInactionGuard\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"creatorFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"creatorFeeBeneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supervisorTip\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct LaunchPepperStakeData\",\"name\":\"_launchData\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_protocolFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_protocolFeeBeneficiary\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ALREADY_COMPLETED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_PARTICIPATING\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CALLER_IS_NOT_SUPERVISOR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"COMPLETION_WINDOW_NOT_OVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"COMPLETION_WINDOW_OVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FEE_SUM_EXCEEDS_100_PERCENT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INCORRECT_STAKE_AMOUNT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ORACLE_DELEGATE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_PARTICIPANT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MAX_PARTICIPANTS_REACHED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PARTICIPANT_NOT_ALLOWED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POST_COMPLETION_WINDOW_DISTRIBUTION_ALREADY_CALLED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prod1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"name\":\"PRBMath__MulDivOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"supervisor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"}],\"name\":\"ApproveForParticipants\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFeeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protocolFeeBeneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"creatorFeeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creatorFeeBeneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supervisorTipAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"supervisors\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supervisorShare\",\"type\":\"uint256\"}],\"name\":\"DistributeFees\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"beneficiaries\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"beneficiaryShare\",\"type\":\"uint256\"}],\"name\":\"DistributeSponsorContribution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"beneficiaries\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"beneficiaryShare\",\"type\":\"uint256\"}],\"name\":\"DistributeUnreturnedStake\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"PostCompletionWindowDistribution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"participant\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"returnAmount\",\"type\":\"uint256\"}],\"name\":\"ReturnStake\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Sponsor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"participant\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Stake\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"PROJECT_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_participants\",\"type\":\"address[]\"}],\"name\":\"approveForParticipants\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oracleDelegate\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_participants\",\"type\":\"address[]\"}],\"name\":\"checkOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"completingParticipantCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"completionWindowEndTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"completionWindowSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPostReturnWindowDistributionCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReturnStakeCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxParticipants\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"metadataURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"oracleDelegates\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"participantCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"participantList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"participants\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isAllowedToParticipate\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"participated\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"postCompletionWindowDistribution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shouldParticipantsShareUnreturnedStake\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shouldUseParticipantAllowList\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shouldUseSupervisorInactionGuard\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sponsor\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakingTiers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"supervisorList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"supervisors\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalFeesCollected\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalReturnedStakeAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSponsorContribution\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStakeAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"unreturnedStakeBeneficiaries\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"PRBMath__MulDivOverflow(uint256,uint256)\":[{\"notice\":\"Emitted when the result overflows uint256.\"}]},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PepperStake.sol\":\"PepperStake\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@prb/contracts/=lib/prb-contracts/src/\",\":@prb/math/=lib/prb-contracts/lib/prb-math/contracts/\",\":@prb/test/=lib/prb-contracts/lib/prb-test/src/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":prb-contracts/=lib/prb-contracts/src/\",\":prb-math/=lib/prb-contracts/lib/prb-math/contracts/\",\":prb-test/=lib/prb-contracts/lib/prb-test/src/\"]},\"sources\":{\"lib/prb-contracts/lib/prb-math/contracts/PRBMath.sol\":{\"keccak256\":\"0xe981069ba1d98749de50dec3983d023a996575d2e7e983f9eb4a33601f655766\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://2804382c50036b38925399624a1a271b50f77ac5476d93fa703266bb60e70de8\",\"dweb:/ipfs/QmXbw6xZc3tBt8MEwSymL9H842xPcnHVu9pwNzf5wAgCoH\"]},\"lib/prb-contracts/src/math/PRBMath.sol\":{\"keccak256\":\"0x4a7bb95f286e312398056763caf966e52e65c1e3a6c1f27ee0e68d7b9021e3ea\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://10063e5b76fd2c63f8a260e6e76a186256bf1808c743a35c6fd0c004c4018653\",\"dweb:/ipfs/QmddD2Je4MEVJxcy1UiuZAM7VxmJT3B6oMhqXP4oBiAkFq\"]},\"src/PepperStake.sol\":{\"keccak256\":\"0xaa53229ab9467f9b10891594999c6f18429533c4db3d1eee4e8cb709ed2005da\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3f8590d71fbbcfeb4a7ec5aad5b4f214d4e0d1b3db7bb7d12db7b6b75b5eb9ab\",\"dweb:/ipfs/QmUxDz8TuM54whDJTTVYECsYwGroQ82SNb93QRnQuCUjsc\"]},\"src/interfaces/IPepperStake.sol\":{\"keccak256\":\"0xc6ac6776d6271d2a2bb1818740c8e72f899427434d91af0767b3426515dfb510\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d05b3690f9aca46f1cad78a14f43dbcaf7897ed1b1ffa3665e068c96f4a928e5\",\"dweb:/ipfs/QmdD6tMj2wsspNuSbq611xxkrRtgaRBavnF533uw3y9eiN\"]},\"src/interfaces/IPepperStakeOracleDelegate.sol\":{\"keccak256\":\"0x3321ae9d7b6a6393e9915163476d1f6431fb942da3fd56af5acc244293b4c4b5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b0146ab1d43908105a2bd535d911304d9c6b27d51868a75c2aeb79bdf9bad3d3\",\"dweb:/ipfs/QmS8nQGXmyPqWqd9peS2amNxjRqMJ3DB6SGiFzarkARJqM\"]},\"src/structs/LaunchPepperStakeData.sol\":{\"keccak256\":\"0x68ebed60b6f6358bbe49c306e12e97ae7180d8a1c5c5174f8c3ead240aaef28f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4d77a2e64c6d3641e697b71a6edee2a909a410f45f2c49cd90d2dba128a4d7ea\",\"dweb:/ipfs/QmNydFUjCzvadvAtbKYpmJfCsWBG6K1naxzhqbk3BqjUp2\"]},\"src/structs/Participant.sol\":{\"keccak256\":\"0x6b444aa2c6968f7214d775467f0990d540682698b04409f09008ae6435023ea2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a4c9e6bccbacf6f5bd327a0fec96a9dcbb52110de052f428796a47032df45fc8\",\"dweb:/ipfs/QmPVTJq28H7RGnNGSkdCgC5iqKCceh2hSNcebmripcfhEG\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.17+commit.8df45f5f"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "_projectId",
              "type": "uint256"
            },
            {
              "internalType": "struct LaunchPepperStakeData",
              "name": "_launchData",
              "type": "tuple",
              "components": [
                {
                  "internalType": "address[]",
                  "name": "supervisors",
                  "type": "address[]"
                },
                {
                  "internalType": "address[]",
                  "name": "participantAllowList",
                  "type": "address[]"
                },
                {
                  "internalType": "address[]",
                  "name": "unreturnedStakeBeneficiaries",
                  "type": "address[]"
                },
                {
                  "internalType": "address[]",
                  "name": "oracleDelegateAddresses",
                  "type": "address[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "stakingTiers",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256",
                  "name": "completionWindowSeconds",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxParticipants",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "shouldUseParticipantAllowList",
                  "type": "bool"
                },
                {
                  "internalType": "bool",
                  "name": "shouldParticipantsShareUnreturnedStake",
                  "type": "bool"
                },
                {
                  "internalType": "bool",
                  "name": "shouldUseSupervisorInactionGuard",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "creatorFee",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "creatorFeeBeneficiary",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "supervisorTip",
                  "type": "uint256"
                },
                {
                  "internalType": "string",
                  "name": "metadataURI",
                  "type": "string"
                }
              ]
            },
            {
              "internalType": "uint256",
              "name": "_protocolFee",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "_protocolFeeBeneficiary",
              "type": "address"
            }
          ],
          "stateMutability": "payable",
          "type": "constructor"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "ALREADY_COMPLETED"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "ALREADY_PARTICIPATING"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "CALLER_IS_NOT_SUPERVISOR"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "COMPLETION_WINDOW_NOT_OVER"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "COMPLETION_WINDOW_OVER"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "FEE_SUM_EXCEEDS_100_PERCENT"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "INCORRECT_STAKE_AMOUNT"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "INVALID_ORACLE_DELEGATE"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "INVALID_PARTICIPANT"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "MAX_PARTICIPANTS_REACHED"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "PARTICIPANT_NOT_ALLOWED"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "POST_COMPLETION_WINDOW_DISTRIBUTION_ALREADY_CALLED"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "prod1",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "denominator",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "PRBMath__MulDivOverflow"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "supervisor",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address[]",
              "name": "participants",
              "type": "address[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ApproveForParticipants",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "protocolFeeAmount",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "protocolFeeBeneficiary",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "creatorFeeAmount",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "creatorFeeBeneficiary",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "supervisorTipAmount",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "address[]",
              "name": "supervisors",
              "type": "address[]",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "supervisorShare",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "DistributeFees",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address[]",
              "name": "beneficiaries",
              "type": "address[]",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "beneficiaryShare",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "DistributeSponsorContribution",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address[]",
              "name": "beneficiaries",
              "type": "address[]",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "beneficiaryShare",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "DistributeUnreturnedStake",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "PostCompletionWindowDistribution",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "participant",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "stakeAmount",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "fee",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "returnAmount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ReturnStake",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "sponsor",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Sponsor",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "participant",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Stake",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "PROJECT_ID",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address[]",
              "name": "_participants",
              "type": "address[]"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "approveForParticipants"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_oracleDelegate",
              "type": "address"
            },
            {
              "internalType": "address[]",
              "name": "_participants",
              "type": "address[]"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "checkOracle"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "completingParticipantCount",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "completionWindowEndTimestamp",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "completionWindowSeconds",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "isPostReturnWindowDistributionCalled",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "isReturnStakeCalled",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "maxParticipants",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "metadataURI",
          "outputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "oracleDelegates",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "participantCount",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "participantList",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "participants",
          "outputs": [
            {
              "internalType": "bool",
              "name": "isAllowedToParticipate",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "participated",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "completed",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "stakeAmount",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "postCompletionWindowDistribution"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "shouldParticipantsShareUnreturnedStake",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "shouldUseParticipantAllowList",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "shouldUseSupervisorInactionGuard",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "payable",
          "type": "function",
          "name": "sponsor"
        },
        {
          "inputs": [],
          "stateMutability": "payable",
          "type": "function",
          "name": "stake"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "stakingTiers",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "supervisorList",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "supervisors",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "totalFeesCollected",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "totalReturnedStakeAmount",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "totalSponsorContribution",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "totalStakeAmount",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "unreturnedStakeBeneficiaries",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ]
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {},
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        ":@prb/contracts/=lib/prb-contracts/src/",
        ":@prb/math/=lib/prb-contracts/lib/prb-math/contracts/",
        ":@prb/test/=lib/prb-contracts/lib/prb-test/src/",
        ":ds-test/=lib/ds-test/src/",
        ":forge-std/=lib/forge-std/src/",
        ":prb-contracts/=lib/prb-contracts/src/",
        ":prb-math/=lib/prb-contracts/lib/prb-math/contracts/",
        ":prb-test/=lib/prb-contracts/lib/prb-test/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "src/PepperStake.sol": "PepperStake"
      },
      "libraries": {}
    },
    "sources": {
      "lib/prb-contracts/lib/prb-math/contracts/PRBMath.sol": {
        "keccak256": "0xe981069ba1d98749de50dec3983d023a996575d2e7e983f9eb4a33601f655766",
        "urls": [
          "bzz-raw://2804382c50036b38925399624a1a271b50f77ac5476d93fa703266bb60e70de8",
          "dweb:/ipfs/QmXbw6xZc3tBt8MEwSymL9H842xPcnHVu9pwNzf5wAgCoH"
        ],
        "license": "Unlicense"
      },
      "lib/prb-contracts/src/math/PRBMath.sol": {
        "keccak256": "0x4a7bb95f286e312398056763caf966e52e65c1e3a6c1f27ee0e68d7b9021e3ea",
        "urls": [
          "bzz-raw://10063e5b76fd2c63f8a260e6e76a186256bf1808c743a35c6fd0c004c4018653",
          "dweb:/ipfs/QmddD2Je4MEVJxcy1UiuZAM7VxmJT3B6oMhqXP4oBiAkFq"
        ],
        "license": "Unlicense"
      },
      "src/PepperStake.sol": {
        "keccak256": "0xaa53229ab9467f9b10891594999c6f18429533c4db3d1eee4e8cb709ed2005da",
        "urls": [
          "bzz-raw://3f8590d71fbbcfeb4a7ec5aad5b4f214d4e0d1b3db7bb7d12db7b6b75b5eb9ab",
          "dweb:/ipfs/QmUxDz8TuM54whDJTTVYECsYwGroQ82SNb93QRnQuCUjsc"
        ],
        "license": "UNLICENSED"
      },
      "src/interfaces/IPepperStake.sol": {
        "keccak256": "0xc6ac6776d6271d2a2bb1818740c8e72f899427434d91af0767b3426515dfb510",
        "urls": [
          "bzz-raw://d05b3690f9aca46f1cad78a14f43dbcaf7897ed1b1ffa3665e068c96f4a928e5",
          "dweb:/ipfs/QmdD6tMj2wsspNuSbq611xxkrRtgaRBavnF533uw3y9eiN"
        ],
        "license": "UNLICENSED"
      },
      "src/interfaces/IPepperStakeOracleDelegate.sol": {
        "keccak256": "0x3321ae9d7b6a6393e9915163476d1f6431fb942da3fd56af5acc244293b4c4b5",
        "urls": [
          "bzz-raw://b0146ab1d43908105a2bd535d911304d9c6b27d51868a75c2aeb79bdf9bad3d3",
          "dweb:/ipfs/QmS8nQGXmyPqWqd9peS2amNxjRqMJ3DB6SGiFzarkARJqM"
        ],
        "license": "UNLICENSED"
      },
      "src/structs/LaunchPepperStakeData.sol": {
        "keccak256": "0x68ebed60b6f6358bbe49c306e12e97ae7180d8a1c5c5174f8c3ead240aaef28f",
        "urls": [
          "bzz-raw://4d77a2e64c6d3641e697b71a6edee2a909a410f45f2c49cd90d2dba128a4d7ea",
          "dweb:/ipfs/QmNydFUjCzvadvAtbKYpmJfCsWBG6K1naxzhqbk3BqjUp2"
        ],
        "license": "UNLICENSED"
      },
      "src/structs/Participant.sol": {
        "keccak256": "0x6b444aa2c6968f7214d775467f0990d540682698b04409f09008ae6435023ea2",
        "urls": [
          "bzz-raw://a4c9e6bccbacf6f5bd327a0fec96a9dcbb52110de052f428796a47032df45fc8",
          "dweb:/ipfs/QmPVTJq28H7RGnNGSkdCgC5iqKCceh2hSNcebmripcfhEG"
        ],
        "license": "UNLICENSED"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "src/PepperStake.sol",
    "id": 27481,
    "exportedSymbols": {
      "IPepperStake": [
        27651
      ],
      "IPepperStakeOracleDelegate": [
        27694
      ],
      "LaunchPepperStakeData": [
        27730
      ],
      "PRBMath": [
        26338
      ],
      "Participant": [
        27741
      ],
      "PepperStake": [
        27480
      ]
    },
    "nodeType": "SourceUnit",
    "src": "39:13833:18",
    "nodes": [
      {
        "id": 26385,
        "nodeType": "PragmaDirective",
        "src": "39:24:18",
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".13"
        ]
      },
      {
        "id": 26386,
        "nodeType": "ImportDirective",
        "src": "65:41:18",
        "absolutePath": "lib/prb-contracts/src/math/PRBMath.sol",
        "file": "@prb/contracts/math/PRBMath.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 27481,
        "sourceUnit": 26343,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 26387,
        "nodeType": "ImportDirective",
        "src": "108:39:18",
        "absolutePath": "src/interfaces/IPepperStake.sol",
        "file": "./interfaces/IPepperStake.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 27481,
        "sourceUnit": 27652,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 26388,
        "nodeType": "ImportDirective",
        "src": "148:53:18",
        "absolutePath": "src/interfaces/IPepperStakeOracleDelegate.sol",
        "file": "./interfaces/IPepperStakeOracleDelegate.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 27481,
        "sourceUnit": 27695,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 26389,
        "nodeType": "ImportDirective",
        "src": "203:35:18",
        "absolutePath": "src/structs/Participant.sol",
        "file": "./structs/Participant.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 27481,
        "sourceUnit": 27742,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 26390,
        "nodeType": "ImportDirective",
        "src": "239:45:18",
        "absolutePath": "src/structs/LaunchPepperStakeData.sol",
        "file": "./structs/LaunchPepperStakeData.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 27481,
        "sourceUnit": 27731,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 27480,
        "nodeType": "ContractDefinition",
        "src": "286:13585:18",
        "nodes": [
          {
            "id": 26394,
            "nodeType": "ErrorDefinition",
            "src": "564:33:18",
            "errorSelector": "3ce96d6e",
            "name": "MAX_PARTICIPANTS_REACHED",
            "nameLocation": "570:24:18",
            "parameters": {
              "id": 26393,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "594:2:18"
            }
          },
          {
            "id": 26396,
            "nodeType": "ErrorDefinition",
            "src": "602:32:18",
            "errorSelector": "64e59994",
            "name": "PARTICIPANT_NOT_ALLOWED",
            "nameLocation": "608:23:18",
            "parameters": {
              "id": 26395,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "631:2:18"
            }
          },
          {
            "id": 26398,
            "nodeType": "ErrorDefinition",
            "src": "639:31:18",
            "errorSelector": "2f94de1c",
            "name": "INCORRECT_STAKE_AMOUNT",
            "nameLocation": "645:22:18",
            "parameters": {
              "id": 26397,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "667:2:18"
            }
          },
          {
            "id": 26400,
            "nodeType": "ErrorDefinition",
            "src": "675:30:18",
            "errorSelector": "5fdadce7",
            "name": "ALREADY_PARTICIPATING",
            "nameLocation": "681:21:18",
            "parameters": {
              "id": 26399,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "702:2:18"
            }
          },
          {
            "id": 26402,
            "nodeType": "ErrorDefinition",
            "src": "710:26:18",
            "errorSelector": "8c53d035",
            "name": "ALREADY_COMPLETED",
            "nameLocation": "716:17:18",
            "parameters": {
              "id": 26401,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "733:2:18"
            }
          },
          {
            "id": 26404,
            "nodeType": "ErrorDefinition",
            "src": "741:31:18",
            "errorSelector": "62ca2fcd",
            "name": "COMPLETION_WINDOW_OVER",
            "nameLocation": "747:22:18",
            "parameters": {
              "id": 26403,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "769:2:18"
            }
          },
          {
            "id": 26406,
            "nodeType": "ErrorDefinition",
            "src": "777:35:18",
            "errorSelector": "19aa4024",
            "name": "COMPLETION_WINDOW_NOT_OVER",
            "nameLocation": "783:26:18",
            "parameters": {
              "id": 26405,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "809:2:18"
            }
          },
          {
            "id": 26408,
            "nodeType": "ErrorDefinition",
            "src": "817:33:18",
            "errorSelector": "64f5dc85",
            "name": "CALLER_IS_NOT_SUPERVISOR",
            "nameLocation": "823:24:18",
            "parameters": {
              "id": 26407,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "847:2:18"
            }
          },
          {
            "id": 26410,
            "nodeType": "ErrorDefinition",
            "src": "855:28:18",
            "errorSelector": "79c66215",
            "name": "INVALID_PARTICIPANT",
            "nameLocation": "861:19:18",
            "parameters": {
              "id": 26409,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "880:2:18"
            }
          },
          {
            "id": 26412,
            "nodeType": "ErrorDefinition",
            "src": "888:59:18",
            "errorSelector": "edca8276",
            "name": "POST_COMPLETION_WINDOW_DISTRIBUTION_ALREADY_CALLED",
            "nameLocation": "894:50:18",
            "parameters": {
              "id": 26411,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "944:2:18"
            }
          },
          {
            "id": 26414,
            "nodeType": "ErrorDefinition",
            "src": "952:32:18",
            "errorSelector": "d67d8ec5",
            "name": "INVALID_ORACLE_DELEGATE",
            "nameLocation": "958:23:18",
            "parameters": {
              "id": 26413,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "981:2:18"
            }
          },
          {
            "id": 26416,
            "nodeType": "ErrorDefinition",
            "src": "989:36:18",
            "errorSelector": "a44cbf2e",
            "name": "FEE_SUM_EXCEEDS_100_PERCENT",
            "nameLocation": "995:27:18",
            "parameters": {
              "id": 26415,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1022:2:18"
            }
          },
          {
            "id": 26419,
            "nodeType": "VariableDeclaration",
            "src": "1266:31:18",
            "constant": false,
            "mutability": "mutable",
            "name": "MAX_FEE",
            "nameLocation": "1274:7:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26417,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1266:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "315f3030305f3030305f303030",
              "id": 26418,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1284:13:18",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000000_by_1",
                "typeString": "int_const 1000000000"
              },
              "value": "1_000_000_000"
            },
            "visibility": "internal"
          },
          {
            "id": 26421,
            "nodeType": "VariableDeclaration",
            "src": "1304:17:18",
            "constant": false,
            "mutability": "mutable",
            "name": "projectId",
            "nameLocation": "1312:9:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26420,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1304:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 26426,
            "nodeType": "VariableDeclaration",
            "src": "1328:51:18",
            "constant": false,
            "functionSelector": "09e69ede",
            "mutability": "mutable",
            "name": "participants",
            "nameLocation": "1367:12:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Participant_$27741_storage_$",
              "typeString": "mapping(address => struct Participant)"
            },
            "typeName": {
              "id": 26425,
              "keyType": {
                "id": 26422,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1336:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1328:31:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Participant_$27741_storage_$",
                "typeString": "mapping(address => struct Participant)"
              },
              "valueType": {
                "id": 26424,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 26423,
                  "name": "Participant",
                  "nameLocations": [
                    "1347:11:18"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 27741,
                  "src": "1347:11:18"
                },
                "referencedDeclaration": 27741,
                "src": "1347:11:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Participant_$27741_storage_ptr",
                  "typeString": "struct Participant"
                }
              }
            },
            "visibility": "public"
          },
          {
            "id": 26430,
            "nodeType": "VariableDeclaration",
            "src": "1385:43:18",
            "constant": false,
            "functionSelector": "e548e3e7",
            "mutability": "mutable",
            "name": "supervisors",
            "nameLocation": "1417:11:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
              "typeString": "mapping(address => bool)"
            },
            "typeName": {
              "id": 26429,
              "keyType": {
                "id": 26427,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1393:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1385:24:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                "typeString": "mapping(address => bool)"
              },
              "valueType": {
                "id": 26428,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1404:4:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "public"
          },
          {
            "id": 26434,
            "nodeType": "VariableDeclaration",
            "src": "1434:47:18",
            "constant": false,
            "functionSelector": "8f57727d",
            "mutability": "mutable",
            "name": "oracleDelegates",
            "nameLocation": "1466:15:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
              "typeString": "mapping(address => bool)"
            },
            "typeName": {
              "id": 26433,
              "keyType": {
                "id": 26431,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1442:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1434:24:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                "typeString": "mapping(address => bool)"
              },
              "valueType": {
                "id": 26432,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1453:4:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "public"
          },
          {
            "id": 26438,
            "nodeType": "VariableDeclaration",
            "src": "1487:44:18",
            "constant": false,
            "functionSelector": "d50267ee",
            "mutability": "mutable",
            "name": "stakingTiers",
            "nameLocation": "1519:12:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
              "typeString": "mapping(uint256 => bool)"
            },
            "typeName": {
              "id": 26437,
              "keyType": {
                "id": 26435,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1495:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1487:24:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                "typeString": "mapping(uint256 => bool)"
              },
              "valueType": {
                "id": 26436,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1506:4:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "public"
          },
          {
            "id": 26441,
            "nodeType": "VariableDeclaration",
            "src": "1538:45:18",
            "constant": false,
            "functionSelector": "8b301e2b",
            "mutability": "mutable",
            "name": "unreturnedStakeBeneficiaries",
            "nameLocation": "1555:28:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_storage",
              "typeString": "address[]"
            },
            "typeName": {
              "baseType": {
                "id": 26439,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1538:7:18",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "id": 26440,
              "nodeType": "ArrayTypeName",
              "src": "1538:9:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26443,
            "nodeType": "VariableDeclaration",
            "src": "1589:38:18",
            "constant": false,
            "functionSelector": "5d758d39",
            "mutability": "mutable",
            "name": "completionWindowSeconds",
            "nameLocation": "1604:23:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26442,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1589:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26445,
            "nodeType": "VariableDeclaration",
            "src": "1633:30:18",
            "constant": false,
            "functionSelector": "24924bf7",
            "mutability": "mutable",
            "name": "maxParticipants",
            "nameLocation": "1648:15:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26444,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1633:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26447,
            "nodeType": "VariableDeclaration",
            "src": "1669:41:18",
            "constant": false,
            "functionSelector": "9340fd51",
            "mutability": "mutable",
            "name": "shouldUseParticipantAllowList",
            "nameLocation": "1681:29:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 26446,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1669:4:18",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26449,
            "nodeType": "VariableDeclaration",
            "src": "1716:50:18",
            "constant": false,
            "functionSelector": "7df7c74f",
            "mutability": "mutable",
            "name": "shouldParticipantsShareUnreturnedStake",
            "nameLocation": "1728:38:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 26448,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1716:4:18",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26451,
            "nodeType": "VariableDeclaration",
            "src": "1772:44:18",
            "constant": false,
            "functionSelector": "cebf058f",
            "mutability": "mutable",
            "name": "shouldUseSupervisorInactionGuard",
            "nameLocation": "1784:32:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 26450,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1772:4:18",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26453,
            "nodeType": "VariableDeclaration",
            "src": "1822:25:18",
            "constant": false,
            "functionSelector": "03ee438c",
            "mutability": "mutable",
            "name": "metadataURI",
            "nameLocation": "1836:11:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 26452,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1822:6:18",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26455,
            "nodeType": "VariableDeclaration",
            "src": "1854:18:18",
            "constant": false,
            "mutability": "mutable",
            "name": "creatorFee",
            "nameLocation": "1862:10:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26454,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1854:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 26457,
            "nodeType": "VariableDeclaration",
            "src": "1878:29:18",
            "constant": false,
            "mutability": "mutable",
            "name": "creatorFeeBeneficiary",
            "nameLocation": "1886:21:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 26456,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "1878:7:18",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 26459,
            "nodeType": "VariableDeclaration",
            "src": "1913:21:18",
            "constant": false,
            "mutability": "mutable",
            "name": "supervisorTip",
            "nameLocation": "1921:13:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26458,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1913:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 26461,
            "nodeType": "VariableDeclaration",
            "src": "1940:19:18",
            "constant": false,
            "mutability": "mutable",
            "name": "protocolFee",
            "nameLocation": "1948:11:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26460,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1940:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 26463,
            "nodeType": "VariableDeclaration",
            "src": "1965:30:18",
            "constant": false,
            "mutability": "mutable",
            "name": "protocolFeeBeneficiary",
            "nameLocation": "1973:22:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 26462,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "1965:7:18",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 26466,
            "nodeType": "VariableDeclaration",
            "src": "2024:32:18",
            "constant": false,
            "functionSelector": "0e6fdaa1",
            "mutability": "mutable",
            "name": "participantList",
            "nameLocation": "2041:15:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_storage",
              "typeString": "address[]"
            },
            "typeName": {
              "baseType": {
                "id": 26464,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "2024:7:18",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "id": 26465,
              "nodeType": "ArrayTypeName",
              "src": "2024:9:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26469,
            "nodeType": "VariableDeclaration",
            "src": "2062:31:18",
            "constant": false,
            "functionSelector": "3ccd928a",
            "mutability": "mutable",
            "name": "supervisorList",
            "nameLocation": "2079:14:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_storage",
              "typeString": "address[]"
            },
            "typeName": {
              "baseType": {
                "id": 26467,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "2062:7:18",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "id": 26468,
              "nodeType": "ArrayTypeName",
              "src": "2062:9:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26471,
            "nodeType": "VariableDeclaration",
            "src": "2099:43:18",
            "constant": false,
            "functionSelector": "f3ac01b9",
            "mutability": "mutable",
            "name": "completionWindowEndTimestamp",
            "nameLocation": "2114:28:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26470,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2099:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26473,
            "nodeType": "VariableDeclaration",
            "src": "2148:31:18",
            "constant": false,
            "functionSelector": "362f04c0",
            "mutability": "mutable",
            "name": "participantCount",
            "nameLocation": "2163:16:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26472,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2148:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26475,
            "nodeType": "VariableDeclaration",
            "src": "2185:41:18",
            "constant": false,
            "functionSelector": "1f7180dd",
            "mutability": "mutable",
            "name": "completingParticipantCount",
            "nameLocation": "2200:26:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26474,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2185:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26477,
            "nodeType": "VariableDeclaration",
            "src": "2232:39:18",
            "constant": false,
            "functionSelector": "aa546a9e",
            "mutability": "mutable",
            "name": "totalSponsorContribution",
            "nameLocation": "2247:24:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26476,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2232:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26479,
            "nodeType": "VariableDeclaration",
            "src": "2277:31:18",
            "constant": false,
            "functionSelector": "94409a56",
            "mutability": "mutable",
            "name": "totalStakeAmount",
            "nameLocation": "2292:16:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26478,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2277:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26481,
            "nodeType": "VariableDeclaration",
            "src": "2314:39:18",
            "constant": false,
            "functionSelector": "34908c16",
            "mutability": "mutable",
            "name": "totalReturnedStakeAmount",
            "nameLocation": "2329:24:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26480,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2314:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26483,
            "nodeType": "VariableDeclaration",
            "src": "2359:33:18",
            "constant": false,
            "functionSelector": "60c6d8ae",
            "mutability": "mutable",
            "name": "totalFeesCollected",
            "nameLocation": "2374:18:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26482,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2359:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26485,
            "nodeType": "VariableDeclaration",
            "src": "2398:31:18",
            "constant": false,
            "functionSelector": "15713566",
            "mutability": "mutable",
            "name": "isReturnStakeCalled",
            "nameLocation": "2410:19:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 26484,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "2398:4:18",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26487,
            "nodeType": "VariableDeclaration",
            "src": "2435:48:18",
            "constant": false,
            "functionSelector": "922fce95",
            "mutability": "mutable",
            "name": "isPostReturnWindowDistributionCalled",
            "nameLocation": "2447:36:18",
            "scope": 27480,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 26486,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "2435:4:18",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "visibility": "public"
          },
          {
            "id": 26744,
            "nodeType": "FunctionDefinition",
            "src": "2490:2773:18",
            "body": {
              "id": 26743,
              "nodeType": "Block",
              "src": "2665:2598:18",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 26507,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 26505,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 26502,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 26499,
                          "name": "_protocolFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26494,
                          "src": "2692:12:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "expression": {
                            "id": 26500,
                            "name": "_launchData",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26492,
                            "src": "2707:11:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                              "typeString": "struct LaunchPepperStakeData memory"
                            }
                          },
                          "id": 26501,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2719:10:18",
                          "memberName": "creatorFee",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 27723,
                          "src": "2707:22:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2692:37:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "expression": {
                          "id": 26503,
                          "name": "_launchData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26492,
                          "src": "2732:11:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          }
                        },
                        "id": 26504,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2744:13:18",
                        "memberName": "supervisorTip",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27727,
                        "src": "2732:25:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2692:65:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "id": 26506,
                      "name": "MAX_FEE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26419,
                      "src": "2772:7:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2692:87:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26512,
                  "nodeType": "IfStatement",
                  "src": "2675:176:18",
                  "trueBody": {
                    "id": 26511,
                    "nodeType": "Block",
                    "src": "2790:61:18",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 26508,
                            "name": "FEE_SUM_EXCEEDS_100_PERCENT",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26416,
                            "src": "2811:27:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 26509,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2811:29:18",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 26510,
                        "nodeType": "RevertStatement",
                        "src": "2804:36:18"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 26515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26513,
                      "name": "projectId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26421,
                      "src": "2861:9:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26514,
                      "name": "_projectId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26489,
                      "src": "2873:10:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2861:22:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26516,
                  "nodeType": "ExpressionStatement",
                  "src": "2861:22:18"
                },
                {
                  "body": {
                    "id": 26538,
                    "nodeType": "Block",
                    "src": "2985:71:18",
                    "statements": [
                      {
                        "expression": {
                          "id": 26536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 26529,
                              "name": "supervisors",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26430,
                              "src": "2999:11:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                "typeString": "mapping(address => bool)"
                              }
                            },
                            "id": 26534,
                            "indexExpression": {
                              "baseExpression": {
                                "expression": {
                                  "id": 26530,
                                  "name": "_launchData",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26492,
                                  "src": "3011:11:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                                    "typeString": "struct LaunchPepperStakeData memory"
                                  }
                                },
                                "id": 26531,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "3023:11:18",
                                "memberName": "supervisors",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 27699,
                                "src": "3011:23:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 26533,
                              "indexExpression": {
                                "id": 26532,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26518,
                                "src": "3035:1:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3011:26:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2999:39:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "74727565",
                            "id": 26535,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3041:4:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "2999:46:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 26537,
                        "nodeType": "ExpressionStatement",
                        "src": "2999:46:18"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 26525,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 26521,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26518,
                      "src": "2944:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "expression": {
                          "id": 26522,
                          "name": "_launchData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26492,
                          "src": "2948:11:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          }
                        },
                        "id": 26523,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2960:11:18",
                        "memberName": "supervisors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27699,
                        "src": "2948:23:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 26524,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2972:6:18",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "2948:30:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2944:34:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26539,
                  "initializationExpression": {
                    "assignments": [
                      26518
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 26518,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "2937:1:18",
                        "nodeType": "VariableDeclaration",
                        "scope": 26539,
                        "src": "2929:9:18",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 26517,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2929:7:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 26520,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 26519,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2941:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2929:13:18"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 26527,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2980:3:18",
                      "subExpression": {
                        "id": 26526,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26518,
                        "src": "2980:1:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 26528,
                    "nodeType": "ExpressionStatement",
                    "src": "2980:3:18"
                  },
                  "nodeType": "ForStatement",
                  "src": "2924:132:18"
                },
                {
                  "body": {
                    "id": 26570,
                    "nodeType": "Block",
                    "src": "3220:159:18",
                    "statements": [
                      {
                        "expression": {
                          "id": 26559,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 26552,
                              "name": "oracleDelegates",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26434,
                              "src": "3234:15:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                "typeString": "mapping(address => bool)"
                              }
                            },
                            "id": 26557,
                            "indexExpression": {
                              "baseExpression": {
                                "expression": {
                                  "id": 26553,
                                  "name": "_launchData",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26492,
                                  "src": "3250:11:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                                    "typeString": "struct LaunchPepperStakeData memory"
                                  }
                                },
                                "id": 26554,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "3262:23:18",
                                "memberName": "oracleDelegateAddresses",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 27708,
                                "src": "3250:35:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 26556,
                              "indexExpression": {
                                "id": 26555,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26541,
                                "src": "3286:1:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3250:38:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3234:55:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "74727565",
                            "id": 26558,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3292:4:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "3234:62:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 26560,
                        "nodeType": "ExpressionStatement",
                        "src": "3234:62:18"
                      },
                      {
                        "expression": {
                          "id": 26568,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 26561,
                              "name": "supervisors",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26430,
                              "src": "3310:11:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                "typeString": "mapping(address => bool)"
                              }
                            },
                            "id": 26566,
                            "indexExpression": {
                              "baseExpression": {
                                "expression": {
                                  "id": 26562,
                                  "name": "_launchData",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26492,
                                  "src": "3322:11:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                                    "typeString": "struct LaunchPepperStakeData memory"
                                  }
                                },
                                "id": 26563,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "3334:23:18",
                                "memberName": "oracleDelegateAddresses",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 27708,
                                "src": "3322:35:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 26565,
                              "indexExpression": {
                                "id": 26564,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26541,
                                "src": "3358:1:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3322:38:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3310:51:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "74727565",
                            "id": 26567,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3364:4:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "3310:58:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 26569,
                        "nodeType": "ExpressionStatement",
                        "src": "3310:58:18"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 26548,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 26544,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26541,
                      "src": "3146:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "expression": {
                          "id": 26545,
                          "name": "_launchData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26492,
                          "src": "3150:11:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          }
                        },
                        "id": 26546,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3162:23:18",
                        "memberName": "oracleDelegateAddresses",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27708,
                        "src": "3150:35:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 26547,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3186:6:18",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "3150:42:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3146:46:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26571,
                  "initializationExpression": {
                    "assignments": [
                      26541
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 26541,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "3127:1:18",
                        "nodeType": "VariableDeclaration",
                        "scope": 26571,
                        "src": "3119:9:18",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 26540,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3119:7:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 26543,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 26542,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3131:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3119:13:18"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 26550,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "3206:3:18",
                      "subExpression": {
                        "id": 26549,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26541,
                        "src": "3206:1:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 26551,
                    "nodeType": "ExpressionStatement",
                    "src": "3206:3:18"
                  },
                  "nodeType": "ForStatement",
                  "src": "3101:278:18"
                },
                {
                  "condition": {
                    "expression": {
                      "id": 26572,
                      "name": "_launchData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26492,
                      "src": "3393:11:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData memory"
                      }
                    },
                    "id": 26573,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "3405:29:18",
                    "memberName": "shouldUseParticipantAllowList",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 27717,
                    "src": "3393:41:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26599,
                  "nodeType": "IfStatement",
                  "src": "3389:336:18",
                  "trueBody": {
                    "id": 26598,
                    "nodeType": "Block",
                    "src": "3436:289:18",
                    "statements": [
                      {
                        "body": {
                          "id": 26596,
                          "nodeType": "Block",
                          "src": "3582:133:18",
                          "statements": [
                            {
                              "expression": {
                                "id": 26594,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "expression": {
                                    "baseExpression": {
                                      "id": 26586,
                                      "name": "participants",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 26426,
                                      "src": "3600:12:18",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Participant_$27741_storage_$",
                                        "typeString": "mapping(address => struct Participant storage ref)"
                                      }
                                    },
                                    "id": 26591,
                                    "indexExpression": {
                                      "baseExpression": {
                                        "expression": {
                                          "id": 26587,
                                          "name": "_launchData",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 26492,
                                          "src": "3613:11:18",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                                            "typeString": "struct LaunchPepperStakeData memory"
                                          }
                                        },
                                        "id": 26588,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "3625:20:18",
                                        "memberName": "participantAllowList",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 27702,
                                        "src": "3613:32:18",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                          "typeString": "address[] memory"
                                        }
                                      },
                                      "id": 26590,
                                      "indexExpression": {
                                        "id": 26589,
                                        "name": "i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 26575,
                                        "src": "3646:1:18",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3613:35:18",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "3600:49:18",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Participant_$27741_storage",
                                      "typeString": "struct Participant storage ref"
                                    }
                                  },
                                  "id": 26592,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberLocation": "3671:22:18",
                                  "memberName": "isAllowedToParticipate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 27734,
                                  "src": "3600:93:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "hexValue": "74727565",
                                  "id": 26593,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3696:4:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "true"
                                },
                                "src": "3600:100:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 26595,
                              "nodeType": "ExpressionStatement",
                              "src": "3600:100:18"
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 26582,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 26578,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26575,
                            "src": "3503:1:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "expression": {
                              "expression": {
                                "id": 26579,
                                "name": "_launchData",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26492,
                                "src": "3507:11:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                                  "typeString": "struct LaunchPepperStakeData memory"
                                }
                              },
                              "id": 26580,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "3519:20:18",
                              "memberName": "participantAllowList",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 27702,
                              "src": "3507:32:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            "id": 26581,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3540:6:18",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "3507:39:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3503:43:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 26597,
                        "initializationExpression": {
                          "assignments": [
                            26575
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 26575,
                              "mutability": "mutable",
                              "name": "i",
                              "nameLocation": "3480:1:18",
                              "nodeType": "VariableDeclaration",
                              "scope": 26597,
                              "src": "3472:9:18",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 26574,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "3472:7:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 26577,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 26576,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3484:1:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "3472:13:18"
                        },
                        "loopExpression": {
                          "expression": {
                            "id": 26584,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "3564:3:18",
                            "subExpression": {
                              "id": 26583,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26575,
                              "src": "3564:1:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 26585,
                          "nodeType": "ExpressionStatement",
                          "src": "3564:3:18"
                        },
                        "nodeType": "ForStatement",
                        "src": "3450:265:18"
                      }
                    ]
                  }
                },
                {
                  "body": {
                    "id": 26621,
                    "nodeType": "Block",
                    "src": "3797:73:18",
                    "statements": [
                      {
                        "expression": {
                          "id": 26619,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 26612,
                              "name": "stakingTiers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26438,
                              "src": "3811:12:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                                "typeString": "mapping(uint256 => bool)"
                              }
                            },
                            "id": 26617,
                            "indexExpression": {
                              "baseExpression": {
                                "expression": {
                                  "id": 26613,
                                  "name": "_launchData",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26492,
                                  "src": "3824:11:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                                    "typeString": "struct LaunchPepperStakeData memory"
                                  }
                                },
                                "id": 26614,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "3836:12:18",
                                "memberName": "stakingTiers",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 27711,
                                "src": "3824:24:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 26616,
                              "indexExpression": {
                                "id": 26615,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26601,
                                "src": "3849:1:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3824:27:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3811:41:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "74727565",
                            "id": 26618,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3855:4:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "3811:48:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 26620,
                        "nodeType": "ExpressionStatement",
                        "src": "3811:48:18"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 26608,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 26604,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26601,
                      "src": "3755:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "expression": {
                          "id": 26605,
                          "name": "_launchData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26492,
                          "src": "3759:11:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          }
                        },
                        "id": 26606,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3771:12:18",
                        "memberName": "stakingTiers",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27711,
                        "src": "3759:24:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 26607,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3784:6:18",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "3759:31:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3755:35:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26622,
                  "initializationExpression": {
                    "assignments": [
                      26601
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 26601,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "3748:1:18",
                        "nodeType": "VariableDeclaration",
                        "scope": 26622,
                        "src": "3740:9:18",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 26600,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3740:7:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 26603,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 26602,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3752:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3740:13:18"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 26610,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "3792:3:18",
                      "subExpression": {
                        "id": 26609,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26601,
                        "src": "3792:1:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 26611,
                    "nodeType": "ExpressionStatement",
                    "src": "3792:3:18"
                  },
                  "nodeType": "ForStatement",
                  "src": "3735:135:18"
                },
                {
                  "expression": {
                    "id": 26626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26623,
                      "name": "unreturnedStakeBeneficiaries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26441,
                      "src": "3880:28:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                        "typeString": "address[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26624,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26492,
                        "src": "3911:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      "id": 26625,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3923:28:18",
                      "memberName": "unreturnedStakeBeneficiaries",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27705,
                      "src": "3911:40:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "3880:71:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                      "typeString": "address[] storage ref"
                    }
                  },
                  "id": 26627,
                  "nodeType": "ExpressionStatement",
                  "src": "3880:71:18"
                },
                {
                  "expression": {
                    "id": 26631,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26628,
                      "name": "completionWindowSeconds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26443,
                      "src": "3961:23:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26629,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26492,
                        "src": "3987:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      "id": 26630,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3999:23:18",
                      "memberName": "completionWindowSeconds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27713,
                      "src": "3987:35:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3961:61:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26632,
                  "nodeType": "ExpressionStatement",
                  "src": "3961:61:18"
                },
                {
                  "expression": {
                    "id": 26636,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26633,
                      "name": "maxParticipants",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26445,
                      "src": "4032:15:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26634,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26492,
                        "src": "4050:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      "id": 26635,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4062:15:18",
                      "memberName": "maxParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27715,
                      "src": "4050:27:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4032:45:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26637,
                  "nodeType": "ExpressionStatement",
                  "src": "4032:45:18"
                },
                {
                  "expression": {
                    "id": 26641,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26638,
                      "name": "shouldParticipantsShareUnreturnedStake",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26449,
                      "src": "4087:38:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26639,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26492,
                        "src": "4128:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      "id": 26640,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4153:38:18",
                      "memberName": "shouldParticipantsShareUnreturnedStake",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27719,
                      "src": "4128:63:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4087:104:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26642,
                  "nodeType": "ExpressionStatement",
                  "src": "4087:104:18"
                },
                {
                  "expression": {
                    "id": 26646,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26643,
                      "name": "shouldUseSupervisorInactionGuard",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26451,
                      "src": "4201:32:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26644,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26492,
                        "src": "4236:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      "id": 26645,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4261:32:18",
                      "memberName": "shouldUseSupervisorInactionGuard",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27721,
                      "src": "4236:57:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4201:92:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26647,
                  "nodeType": "ExpressionStatement",
                  "src": "4201:92:18"
                },
                {
                  "expression": {
                    "id": 26651,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26648,
                      "name": "shouldUseParticipantAllowList",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26447,
                      "src": "4303:29:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26649,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26492,
                        "src": "4335:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      "id": 26650,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4360:29:18",
                      "memberName": "shouldUseParticipantAllowList",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27717,
                      "src": "4335:54:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4303:86:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26652,
                  "nodeType": "ExpressionStatement",
                  "src": "4303:86:18"
                },
                {
                  "expression": {
                    "id": 26656,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26653,
                      "name": "metadataURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26453,
                      "src": "4399:11:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26654,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26492,
                        "src": "4413:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      "id": 26655,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4425:11:18",
                      "memberName": "metadataURI",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27729,
                      "src": "4413:23:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "4399:37:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 26657,
                  "nodeType": "ExpressionStatement",
                  "src": "4399:37:18"
                },
                {
                  "expression": {
                    "id": 26661,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26658,
                      "name": "supervisorList",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26469,
                      "src": "4447:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                        "typeString": "address[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26659,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26492,
                        "src": "4464:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      "id": 26660,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4476:11:18",
                      "memberName": "supervisors",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27699,
                      "src": "4464:23:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "4447:40:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                      "typeString": "address[] storage ref"
                    }
                  },
                  "id": 26662,
                  "nodeType": "ExpressionStatement",
                  "src": "4447:40:18"
                },
                {
                  "expression": {
                    "id": 26670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26663,
                        "name": "supervisors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26430,
                        "src": "4497:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 26668,
                      "indexExpression": {
                        "arguments": [
                          {
                            "id": 26666,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -28,
                            "src": "4517:4:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PepperStake_$27480",
                              "typeString": "contract PepperStake"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_PepperStake_$27480",
                              "typeString": "contract PepperStake"
                            }
                          ],
                          "id": 26665,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4509:7:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 26664,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "4509:7:18",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 26667,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4509:13:18",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4497:26:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 26669,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4526:4:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "4497:33:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26671,
                  "nodeType": "ExpressionStatement",
                  "src": "4497:33:18"
                },
                {
                  "expression": {
                    "id": 26675,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26672,
                      "name": "creatorFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26455,
                      "src": "4541:10:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26673,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26492,
                        "src": "4554:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      "id": 26674,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4566:10:18",
                      "memberName": "creatorFee",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27723,
                      "src": "4554:22:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4541:35:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26676,
                  "nodeType": "ExpressionStatement",
                  "src": "4541:35:18"
                },
                {
                  "expression": {
                    "id": 26680,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26677,
                      "name": "creatorFeeBeneficiary",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26457,
                      "src": "4586:21:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26678,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26492,
                        "src": "4610:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      "id": 26679,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4622:21:18",
                      "memberName": "creatorFeeBeneficiary",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27725,
                      "src": "4610:33:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "4586:57:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26681,
                  "nodeType": "ExpressionStatement",
                  "src": "4586:57:18"
                },
                {
                  "expression": {
                    "id": 26685,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26682,
                      "name": "supervisorTip",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26459,
                      "src": "4653:13:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26683,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26492,
                        "src": "4669:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      "id": 26684,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4681:13:18",
                      "memberName": "supervisorTip",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27727,
                      "src": "4669:25:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4653:41:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26686,
                  "nodeType": "ExpressionStatement",
                  "src": "4653:41:18"
                },
                {
                  "expression": {
                    "id": 26689,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26687,
                      "name": "protocolFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26461,
                      "src": "4704:11:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26688,
                      "name": "_protocolFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "4718:12:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4704:26:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26690,
                  "nodeType": "ExpressionStatement",
                  "src": "4704:26:18"
                },
                {
                  "expression": {
                    "id": 26693,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26691,
                      "name": "protocolFeeBeneficiary",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26463,
                      "src": "4740:22:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26692,
                      "name": "_protocolFeeBeneficiary",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26496,
                      "src": "4765:23:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "4740:48:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26694,
                  "nodeType": "ExpressionStatement",
                  "src": "4740:48:18"
                },
                {
                  "expression": {
                    "id": 26700,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26695,
                      "name": "completionWindowEndTimestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26471,
                      "src": "4799:28:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 26699,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 26696,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -4,
                          "src": "4842:5:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 26697,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4848:9:18",
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "src": "4842:15:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "id": 26698,
                        "name": "completionWindowSeconds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26443,
                        "src": "4872:23:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "4842:53:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4799:96:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26701,
                  "nodeType": "ExpressionStatement",
                  "src": "4799:96:18"
                },
                {
                  "expression": {
                    "id": 26704,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26702,
                      "name": "participantCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26473,
                      "src": "4905:16:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 26703,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4924:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "4905:20:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26705,
                  "nodeType": "ExpressionStatement",
                  "src": "4905:20:18"
                },
                {
                  "expression": {
                    "id": 26708,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26706,
                      "name": "completingParticipantCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26475,
                      "src": "4935:26:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 26707,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4964:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "4935:30:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26709,
                  "nodeType": "ExpressionStatement",
                  "src": "4935:30:18"
                },
                {
                  "expression": {
                    "id": 26712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26710,
                      "name": "totalSponsorContribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26477,
                      "src": "4975:24:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 26711,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5002:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "4975:28:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26713,
                  "nodeType": "ExpressionStatement",
                  "src": "4975:28:18"
                },
                {
                  "expression": {
                    "id": 26716,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26714,
                      "name": "totalStakeAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26479,
                      "src": "5013:16:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 26715,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5032:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5013:20:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26717,
                  "nodeType": "ExpressionStatement",
                  "src": "5013:20:18"
                },
                {
                  "expression": {
                    "id": 26720,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26718,
                      "name": "totalReturnedStakeAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26481,
                      "src": "5043:24:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 26719,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5070:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5043:28:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26721,
                  "nodeType": "ExpressionStatement",
                  "src": "5043:28:18"
                },
                {
                  "expression": {
                    "id": 26724,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26722,
                      "name": "totalFeesCollected",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26483,
                      "src": "5081:18:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 26723,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5102:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5081:22:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26725,
                  "nodeType": "ExpressionStatement",
                  "src": "5081:22:18"
                },
                {
                  "expression": {
                    "id": 26728,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26726,
                      "name": "isReturnStakeCalled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26485,
                      "src": "5113:19:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "66616c7365",
                      "id": 26727,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5135:5:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "5113:27:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26729,
                  "nodeType": "ExpressionStatement",
                  "src": "5113:27:18"
                },
                {
                  "expression": {
                    "id": 26732,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26730,
                      "name": "isPostReturnWindowDistributionCalled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26487,
                      "src": "5150:36:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "66616c7365",
                      "id": 26731,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5189:5:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "5150:44:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26733,
                  "nodeType": "ExpressionStatement",
                  "src": "5150:44:18"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 26737,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 26734,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -15,
                        "src": "5209:3:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 26735,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5213:5:18",
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "src": "5209:9:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 26736,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5221:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5209:13:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26742,
                  "nodeType": "IfStatement",
                  "src": "5205:52:18",
                  "trueBody": {
                    "id": 26741,
                    "nodeType": "Block",
                    "src": "5224:33:18",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 26738,
                            "name": "_stake",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26885,
                            "src": "5238:6:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 26739,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5238:8:18",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 26740,
                        "nodeType": "ExpressionStatement",
                        "src": "5238:8:18"
                      }
                    ]
                  }
                }
              ]
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "parameters": {
              "id": 26497,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26489,
                  "mutability": "mutable",
                  "name": "_projectId",
                  "nameLocation": "2519:10:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 26744,
                  "src": "2511:18:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26488,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2511:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26492,
                  "mutability": "mutable",
                  "name": "_launchData",
                  "nameLocation": "2568:11:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 26744,
                  "src": "2539:40:18",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                    "typeString": "struct LaunchPepperStakeData"
                  },
                  "typeName": {
                    "id": 26491,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 26490,
                      "name": "LaunchPepperStakeData",
                      "nameLocations": [
                        "2539:21:18"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27730,
                      "src": "2539:21:18"
                    },
                    "referencedDeclaration": 27730,
                    "src": "2539:21:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_storage_ptr",
                      "typeString": "struct LaunchPepperStakeData"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26494,
                  "mutability": "mutable",
                  "name": "_protocolFee",
                  "nameLocation": "2597:12:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 26744,
                  "src": "2589:20:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26493,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2589:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26496,
                  "mutability": "mutable",
                  "name": "_protocolFeeBeneficiary",
                  "nameLocation": "2627:23:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 26744,
                  "src": "2619:31:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 26495,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2619:7:18",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2501:155:18"
            },
            "returnParameters": {
              "id": 26498,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2665:0:18"
            },
            "scope": 27480,
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 26753,
            "nodeType": "FunctionDefinition",
            "src": "5269:96:18",
            "body": {
              "id": 26752,
              "nodeType": "Block",
              "src": "5332:33:18",
              "statements": [
                {
                  "expression": {
                    "id": 26750,
                    "name": "projectId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26421,
                    "src": "5349:9:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 26749,
                  "id": 26751,
                  "nodeType": "Return",
                  "src": "5342:16:18"
                }
              ]
            },
            "baseFunctions": [
              27650
            ],
            "functionSelector": "56539f39",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "PROJECT_ID",
            "nameLocation": "5278:10:18",
            "overrides": {
              "id": 26746,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5305:8:18"
            },
            "parameters": {
              "id": 26745,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5288:2:18"
            },
            "returnParameters": {
              "id": 26749,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26748,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 26753,
                  "src": "5323:7:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26747,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5323:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5322:9:18"
            },
            "scope": 27480,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 26885,
            "nodeType": "FunctionDefinition",
            "src": "5371:1551:18",
            "body": {
              "id": 26884,
              "nodeType": "Block",
              "src": "5397:1525:18",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 26763,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 26756,
                      "name": "shouldUseParticipantAllowList",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26447,
                      "src": "5424:29:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "id": 26762,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "5469:48:18",
                      "subExpression": {
                        "expression": {
                          "baseExpression": {
                            "id": 26757,
                            "name": "participants",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26426,
                            "src": "5470:12:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Participant_$27741_storage_$",
                              "typeString": "mapping(address => struct Participant storage ref)"
                            }
                          },
                          "id": 26760,
                          "indexExpression": {
                            "expression": {
                              "id": 26758,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -15,
                              "src": "5483:3:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 26759,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5487:6:18",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "5483:10:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5470:24:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Participant_$27741_storage",
                            "typeString": "struct Participant storage ref"
                          }
                        },
                        "id": 26761,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5495:22:18",
                        "memberName": "isAllowedToParticipate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27734,
                        "src": "5470:47:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "5424:93:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26768,
                  "nodeType": "IfStatement",
                  "src": "5407:178:18",
                  "trueBody": {
                    "id": 26767,
                    "nodeType": "Block",
                    "src": "5528:57:18",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 26764,
                            "name": "PARTICIPANT_NOT_ALLOWED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26396,
                            "src": "5549:23:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 26765,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5549:25:18",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 26766,
                        "nodeType": "RevertStatement",
                        "src": "5542:32:18"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 26771,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 26769,
                      "name": "participantCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26473,
                      "src": "5598:16:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "id": 26770,
                      "name": "maxParticipants",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26445,
                      "src": "5618:15:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5598:35:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26775,
                  "nodeType": "IfStatement",
                  "src": "5594:86:18",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 26772,
                        "name": "MAX_PARTICIPANTS_REACHED",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26394,
                        "src": "5654:24:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 26773,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5654:26:18",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 26774,
                    "nodeType": "RevertStatement",
                    "src": "5647:33:18"
                  }
                },
                {
                  "condition": {
                    "expression": {
                      "baseExpression": {
                        "id": 26776,
                        "name": "participants",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26426,
                        "src": "5694:12:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Participant_$27741_storage_$",
                          "typeString": "mapping(address => struct Participant storage ref)"
                        }
                      },
                      "id": 26779,
                      "indexExpression": {
                        "expression": {
                          "id": 26777,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "5707:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26778,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5711:6:18",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "5707:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "5694:24:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Participant_$27741_storage",
                        "typeString": "struct Participant storage ref"
                      }
                    },
                    "id": 26780,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "5719:12:18",
                    "memberName": "participated",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 27736,
                    "src": "5694:37:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26784,
                  "nodeType": "IfStatement",
                  "src": "5690:85:18",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 26781,
                        "name": "ALREADY_PARTICIPATING",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26400,
                        "src": "5752:21:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 26782,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5752:23:18",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 26783,
                    "nodeType": "RevertStatement",
                    "src": "5745:30:18"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 26788,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 26785,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -4,
                        "src": "5789:5:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 26786,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5795:9:18",
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "src": "5789:15:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "id": 26787,
                      "name": "completionWindowEndTimestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26471,
                      "src": "5807:28:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5789:46:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26792,
                  "nodeType": "IfStatement",
                  "src": "5785:95:18",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 26789,
                        "name": "COMPLETION_WINDOW_OVER",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26404,
                        "src": "5856:22:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 26790,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5856:24:18",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 26791,
                    "nodeType": "RevertStatement",
                    "src": "5849:31:18"
                  }
                },
                {
                  "condition": {
                    "id": 26797,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "5894:24:18",
                    "subExpression": {
                      "baseExpression": {
                        "id": 26793,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26438,
                        "src": "5895:12:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 26796,
                      "indexExpression": {
                        "expression": {
                          "id": 26794,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "5908:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26795,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5912:5:18",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "src": "5908:9:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "5895:23:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26801,
                  "nodeType": "IfStatement",
                  "src": "5890:61:18",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 26798,
                        "name": "INCORRECT_STAKE_AMOUNT",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26398,
                        "src": "5927:22:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 26799,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5927:24:18",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 26800,
                    "nodeType": "RevertStatement",
                    "src": "5920:31:18"
                  }
                },
                {
                  "assignments": [
                    26804
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26804,
                      "mutability": "mutable",
                      "name": "participantData",
                      "nameLocation": "5981:15:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 26884,
                      "src": "5962:34:18",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Participant_$27741_memory_ptr",
                        "typeString": "struct Participant"
                      },
                      "typeName": {
                        "id": 26803,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26802,
                          "name": "Participant",
                          "nameLocations": [
                            "5962:11:18"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27741,
                          "src": "5962:11:18"
                        },
                        "referencedDeclaration": 27741,
                        "src": "5962:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Participant_$27741_storage_ptr",
                          "typeString": "struct Participant"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26812,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "74727565",
                        "id": 26806,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6049:4:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 26807,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6081:4:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 26808,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6110:5:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "expression": {
                          "id": 26809,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "6142:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26810,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6146:5:18",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "src": "6142:9:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 26805,
                      "name": "Participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27741,
                      "src": "5999:11:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Participant_$27741_storage_ptr_$",
                        "typeString": "type(struct Participant storage pointer)"
                      }
                    },
                    "id": 26811,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "6025:22:18",
                      "6067:12:18",
                      "6099:9:18",
                      "6129:11:18"
                    ],
                    "names": [
                      "isAllowedToParticipate",
                      "participated",
                      "completed",
                      "stakeAmount"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "5999:163:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Participant_$27741_memory_ptr",
                      "typeString": "struct Participant memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5962:200:18"
                },
                {
                  "expression": {
                    "id": 26818,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 26813,
                        "name": "participants",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26426,
                        "src": "6172:12:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Participant_$27741_storage_$",
                          "typeString": "mapping(address => struct Participant storage ref)"
                        }
                      },
                      "id": 26816,
                      "indexExpression": {
                        "expression": {
                          "id": 26814,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "6185:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26815,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6189:6:18",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "6185:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6172:24:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Participant_$27741_storage",
                        "typeString": "struct Participant storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26817,
                      "name": "participantData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26804,
                      "src": "6199:15:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Participant_$27741_memory_ptr",
                        "typeString": "struct Participant memory"
                      }
                    },
                    "src": "6172:42:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Participant_$27741_storage",
                      "typeString": "struct Participant storage ref"
                    }
                  },
                  "id": 26819,
                  "nodeType": "ExpressionStatement",
                  "src": "6172:42:18"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26823,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "6245:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26824,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6249:6:18",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "6245:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 26820,
                        "name": "participantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26466,
                        "src": "6224:15:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 26822,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6240:4:18",
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "src": "6224:20:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$",
                        "typeString": "function (address[] storage pointer,address)"
                      }
                    },
                    "id": 26825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6224:32:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26826,
                  "nodeType": "ExpressionStatement",
                  "src": "6224:32:18"
                },
                {
                  "expression": {
                    "id": 26828,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "6266:18:18",
                    "subExpression": {
                      "id": 26827,
                      "name": "participantCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26473,
                      "src": "6266:16:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26829,
                  "nodeType": "ExpressionStatement",
                  "src": "6266:18:18"
                },
                {
                  "expression": {
                    "id": 26833,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26830,
                      "name": "totalStakeAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26479,
                      "src": "6294:16:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26831,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -15,
                        "src": "6314:3:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 26832,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6318:5:18",
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "src": "6314:9:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6294:29:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26834,
                  "nodeType": "ExpressionStatement",
                  "src": "6294:29:18"
                },
                {
                  "assignments": [
                    26836
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26836,
                      "mutability": "mutable",
                      "name": "protocolFeeAmount",
                      "nameLocation": "6342:17:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 26884,
                      "src": "6334:25:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26835,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6334:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26844,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26839,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "6390:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26840,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6394:5:18",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "src": "6390:9:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26841,
                        "name": "protocolFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26461,
                        "src": "6413:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26842,
                        "name": "MAX_FEE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26419,
                        "src": "6438:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26837,
                        "name": "PRBMath",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26338,
                        "src": "6362:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_PRBMath_$26338_$",
                          "typeString": "type(library PRBMath)"
                        }
                      },
                      "id": 26838,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6370:6:18",
                      "memberName": "mulDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25927,
                      "src": "6362:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 26843,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6362:93:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6334:121:18"
                },
                {
                  "assignments": [
                    26846
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26846,
                      "mutability": "mutable",
                      "name": "creatorFeeAmount",
                      "nameLocation": "6473:16:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 26884,
                      "src": "6465:24:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26845,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6465:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26854,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26849,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "6520:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26850,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6524:5:18",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "src": "6520:9:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26851,
                        "name": "creatorFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26455,
                        "src": "6543:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26852,
                        "name": "MAX_FEE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26419,
                        "src": "6567:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26847,
                        "name": "PRBMath",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26338,
                        "src": "6492:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_PRBMath_$26338_$",
                          "typeString": "type(library PRBMath)"
                        }
                      },
                      "id": 26848,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6500:6:18",
                      "memberName": "mulDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25927,
                      "src": "6492:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 26853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6492:92:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6465:119:18"
                },
                {
                  "assignments": [
                    26856
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26856,
                      "mutability": "mutable",
                      "name": "supervisorTipAmount",
                      "nameLocation": "6602:19:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 26884,
                      "src": "6594:27:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26855,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6594:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26864,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26859,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "6652:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26860,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6656:5:18",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "src": "6652:9:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26861,
                        "name": "supervisorTip",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26459,
                        "src": "6675:13:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26862,
                        "name": "MAX_FEE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26419,
                        "src": "6702:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26857,
                        "name": "PRBMath",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26338,
                        "src": "6624:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_PRBMath_$26338_$",
                          "typeString": "type(library PRBMath)"
                        }
                      },
                      "id": 26858,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6632:6:18",
                      "memberName": "mulDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25927,
                      "src": "6624:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 26863,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6624:95:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6594:125:18"
                },
                {
                  "assignments": [
                    26866
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26866,
                      "mutability": "mutable",
                      "name": "totalFee",
                      "nameLocation": "6738:8:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 26884,
                      "src": "6730:16:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26865,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6730:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26872,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 26871,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 26869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 26867,
                        "name": "protocolFeeAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26836,
                        "src": "6749:17:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "id": 26868,
                        "name": "creatorFeeAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26846,
                        "src": "6781:16:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "6749:48:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "id": 26870,
                      "name": "supervisorTipAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26856,
                      "src": "6812:19:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6749:82:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6730:101:18"
                },
                {
                  "expression": {
                    "id": 26875,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26873,
                      "name": "totalFeesCollected",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26483,
                      "src": "6841:18:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 26874,
                      "name": "totalFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26866,
                      "src": "6863:8:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6841:30:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26876,
                  "nodeType": "ExpressionStatement",
                  "src": "6841:30:18"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26878,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "6893:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26879,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6897:6:18",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "6893:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 26880,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "6905:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26881,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6909:5:18",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "src": "6905:9:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 26877,
                      "name": "Stake",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27554,
                      "src": "6887:5:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 26882,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6887:28:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26883,
                  "nodeType": "EmitStatement",
                  "src": "6882:33:18"
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_stake",
            "nameLocation": "5380:6:18",
            "parameters": {
              "id": 26754,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5386:2:18"
            },
            "returnParameters": {
              "id": 26755,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5397:0:18"
            },
            "scope": 27480,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 26892,
            "nodeType": "FunctionDefinition",
            "src": "6928:59:18",
            "body": {
              "id": 26891,
              "nodeType": "Block",
              "src": "6962:25:18",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26888,
                      "name": "_stake",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26885,
                      "src": "6972:6:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 26889,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6972:8:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26890,
                  "nodeType": "ExpressionStatement",
                  "src": "6972:8:18"
                }
              ]
            },
            "baseFunctions": [
              27625
            ],
            "functionSelector": "3a4b66f1",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "stake",
            "nameLocation": "6937:5:18",
            "parameters": {
              "id": 26886,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6942:2:18"
            },
            "returnParameters": {
              "id": 26887,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6962:0:18"
            },
            "scope": 27480,
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 26916,
            "nodeType": "FunctionDefinition",
            "src": "6993:241:18",
            "body": {
              "id": 26915,
              "nodeType": "Block",
              "src": "7029:205:18",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 26898,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 26895,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -4,
                        "src": "7043:5:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 26896,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7049:9:18",
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "src": "7043:15:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "id": 26897,
                      "name": "completionWindowEndTimestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26471,
                      "src": "7061:28:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7043:46:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26902,
                  "nodeType": "IfStatement",
                  "src": "7039:95:18",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 26899,
                        "name": "COMPLETION_WINDOW_OVER",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26404,
                        "src": "7110:22:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 26900,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7110:24:18",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 26901,
                    "nodeType": "RevertStatement",
                    "src": "7103:31:18"
                  }
                },
                {
                  "expression": {
                    "id": 26906,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26903,
                      "name": "totalSponsorContribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26477,
                      "src": "7144:24:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "expression": {
                        "id": 26904,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -15,
                        "src": "7172:3:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 26905,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7176:5:18",
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "src": "7172:9:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7144:37:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26907,
                  "nodeType": "ExpressionStatement",
                  "src": "7144:37:18"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26909,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "7205:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7209:6:18",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "7205:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 26911,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "7217:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 26912,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7221:5:18",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "src": "7217:9:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 26908,
                      "name": "Sponsor",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27560,
                      "src": "7197:7:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 26913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7197:30:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26914,
                  "nodeType": "EmitStatement",
                  "src": "7192:35:18"
                }
              ]
            },
            "baseFunctions": [
              27628
            ],
            "functionSelector": "77c93662",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "sponsor",
            "nameLocation": "7002:7:18",
            "parameters": {
              "id": 26893,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7009:2:18"
            },
            "returnParameters": {
              "id": 26894,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7029:0:18"
            },
            "scope": 27480,
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 27004,
            "nodeType": "FunctionDefinition",
            "src": "7240:1172:18",
            "body": {
              "id": 27003,
              "nodeType": "Block",
              "src": "7300:1112:18",
              "statements": [
                {
                  "assignments": [
                    26923
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26923,
                      "mutability": "mutable",
                      "name": "_participant",
                      "nameLocation": "7329:12:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27003,
                      "src": "7310:31:18",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Participant_$27741_memory_ptr",
                        "typeString": "struct Participant"
                      },
                      "typeName": {
                        "id": 26922,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26921,
                          "name": "Participant",
                          "nameLocations": [
                            "7310:11:18"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27741,
                          "src": "7310:11:18"
                        },
                        "referencedDeclaration": 27741,
                        "src": "7310:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Participant_$27741_storage_ptr",
                          "typeString": "struct Participant"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26927,
                  "initialValue": {
                    "baseExpression": {
                      "id": 26924,
                      "name": "participants",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26426,
                      "src": "7344:12:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Participant_$27741_storage_$",
                        "typeString": "mapping(address => struct Participant storage ref)"
                      }
                    },
                    "id": 26926,
                    "indexExpression": {
                      "id": 26925,
                      "name": "_participantAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26918,
                      "src": "7357:19:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7344:33:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Participant_$27741_storage",
                      "typeString": "struct Participant storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7310:67:18"
                },
                {
                  "assignments": [
                    26929
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26929,
                      "mutability": "mutable",
                      "name": "protocolFeeAmount",
                      "nameLocation": "7439:17:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27003,
                      "src": "7431:25:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26928,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7431:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26937,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26932,
                          "name": "_participant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26923,
                          "src": "7487:12:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Participant_$27741_memory_ptr",
                            "typeString": "struct Participant memory"
                          }
                        },
                        "id": 26933,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7500:11:18",
                        "memberName": "stakeAmount",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27740,
                        "src": "7487:24:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26934,
                        "name": "protocolFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26461,
                        "src": "7525:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26935,
                        "name": "MAX_FEE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26419,
                        "src": "7550:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26930,
                        "name": "PRBMath",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26338,
                        "src": "7459:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_PRBMath_$26338_$",
                          "typeString": "type(library PRBMath)"
                        }
                      },
                      "id": 26931,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7467:6:18",
                      "memberName": "mulDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25927,
                      "src": "7459:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 26936,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7459:108:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7431:136:18"
                },
                {
                  "assignments": [
                    26939
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26939,
                      "mutability": "mutable",
                      "name": "creatorFeeAmount",
                      "nameLocation": "7585:16:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27003,
                      "src": "7577:24:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26938,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7577:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26947,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26942,
                          "name": "_participant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26923,
                          "src": "7632:12:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Participant_$27741_memory_ptr",
                            "typeString": "struct Participant memory"
                          }
                        },
                        "id": 26943,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7645:11:18",
                        "memberName": "stakeAmount",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27740,
                        "src": "7632:24:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26944,
                        "name": "creatorFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26455,
                        "src": "7670:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26945,
                        "name": "MAX_FEE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26419,
                        "src": "7694:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26940,
                        "name": "PRBMath",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26338,
                        "src": "7604:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_PRBMath_$26338_$",
                          "typeString": "type(library PRBMath)"
                        }
                      },
                      "id": 26941,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7612:6:18",
                      "memberName": "mulDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25927,
                      "src": "7604:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 26946,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7604:107:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7577:134:18"
                },
                {
                  "assignments": [
                    26949
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26949,
                      "mutability": "mutable",
                      "name": "supervisorTipAmount",
                      "nameLocation": "7729:19:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27003,
                      "src": "7721:27:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26948,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7721:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26957,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26952,
                          "name": "_participant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26923,
                          "src": "7779:12:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Participant_$27741_memory_ptr",
                            "typeString": "struct Participant memory"
                          }
                        },
                        "id": 26953,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7792:11:18",
                        "memberName": "stakeAmount",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27740,
                        "src": "7779:24:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26954,
                        "name": "supervisorTip",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26459,
                        "src": "7817:13:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26955,
                        "name": "MAX_FEE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26419,
                        "src": "7844:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26950,
                        "name": "PRBMath",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26338,
                        "src": "7751:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_PRBMath_$26338_$",
                          "typeString": "type(library PRBMath)"
                        }
                      },
                      "id": 26951,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7759:6:18",
                      "memberName": "mulDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25927,
                      "src": "7751:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 26956,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7751:110:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7721:140:18"
                },
                {
                  "assignments": [
                    26959
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26959,
                      "mutability": "mutable",
                      "name": "totalFee",
                      "nameLocation": "7879:8:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27003,
                      "src": "7871:16:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26958,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7871:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26965,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 26964,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 26962,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 26960,
                        "name": "protocolFeeAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26929,
                        "src": "7890:17:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "id": 26961,
                        "name": "creatorFeeAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26939,
                        "src": "7922:16:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "7890:48:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "id": 26963,
                      "name": "supervisorTipAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26949,
                      "src": "7953:19:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7890:82:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7871:101:18"
                },
                {
                  "assignments": [
                    26967
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26967,
                      "mutability": "mutable",
                      "name": "returnAmount",
                      "nameLocation": "7990:12:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27003,
                      "src": "7982:20:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26966,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7982:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26972,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 26971,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 26968,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26923,
                        "src": "8005:12:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Participant_$27741_memory_ptr",
                          "typeString": "struct Participant memory"
                        }
                      },
                      "id": 26969,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8018:11:18",
                      "memberName": "stakeAmount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27740,
                      "src": "8005:24:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "id": 26970,
                      "name": "totalFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26959,
                      "src": "8032:8:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8005:35:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7982:58:18"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26978,
                        "name": "returnAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26967,
                        "src": "8088:12:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 26975,
                            "name": "_participantAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26918,
                            "src": "8058:19:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 26974,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8050:8:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_payable_$",
                            "typeString": "type(address payable)"
                          },
                          "typeName": {
                            "id": 26973,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "8050:8:18",
                            "stateMutability": "payable",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 26976,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8050:28:18",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "id": 26977,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8079:8:18",
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "src": "8050:37:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 26979,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8050:51:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26980,
                  "nodeType": "ExpressionStatement",
                  "src": "8050:51:18"
                },
                {
                  "expression": {
                    "id": 26986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "baseExpression": {
                          "id": 26981,
                          "name": "participants",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26426,
                          "src": "8111:12:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Participant_$27741_storage_$",
                            "typeString": "mapping(address => struct Participant storage ref)"
                          }
                        },
                        "id": 26983,
                        "indexExpression": {
                          "id": 26982,
                          "name": "_participantAddress",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26918,
                          "src": "8124:19:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "8111:33:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Participant_$27741_storage",
                          "typeString": "struct Participant storage ref"
                        }
                      },
                      "id": 26984,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "8145:9:18",
                      "memberName": "completed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27738,
                      "src": "8111:43:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 26985,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8157:4:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "8111:50:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26987,
                  "nodeType": "ExpressionStatement",
                  "src": "8111:50:18"
                },
                {
                  "expression": {
                    "id": 26989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "8171:28:18",
                    "subExpression": {
                      "id": 26988,
                      "name": "completingParticipantCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26475,
                      "src": "8171:26:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26990,
                  "nodeType": "ExpressionStatement",
                  "src": "8171:28:18"
                },
                {
                  "expression": {
                    "id": 26993,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26991,
                      "name": "totalReturnedStakeAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26481,
                      "src": "8209:24:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 26992,
                      "name": "returnAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26967,
                      "src": "8237:12:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8209:40:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26994,
                  "nodeType": "ExpressionStatement",
                  "src": "8209:40:18"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 26996,
                        "name": "_participantAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26918,
                        "src": "8290:19:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 26997,
                          "name": "_participant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26923,
                          "src": "8323:12:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Participant_$27741_memory_ptr",
                            "typeString": "struct Participant memory"
                          }
                        },
                        "id": 26998,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8336:11:18",
                        "memberName": "stakeAmount",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27740,
                        "src": "8323:24:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26999,
                        "name": "totalFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26959,
                        "src": "8361:8:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27000,
                        "name": "returnAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26967,
                        "src": "8383:12:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 26995,
                      "name": "ReturnStake",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27577,
                      "src": "8265:11:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256,uint256,uint256)"
                      }
                    },
                    "id": 27001,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8265:140:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27002,
                  "nodeType": "EmitStatement",
                  "src": "8260:145:18"
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_returnStake",
            "nameLocation": "7249:12:18",
            "parameters": {
              "id": 26919,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26918,
                  "mutability": "mutable",
                  "name": "_participantAddress",
                  "nameLocation": "7270:19:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 27004,
                  "src": "7262:27:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 26917,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7262:7:18",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7261:29:18"
            },
            "returnParameters": {
              "id": 26920,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7300:0:18"
            },
            "scope": 27480,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 27095,
            "nodeType": "FunctionDefinition",
            "src": "8418:839:18",
            "body": {
              "id": 27094,
              "nodeType": "Block",
              "src": "8491:766:18",
              "statements": [
                {
                  "condition": {
                    "id": 27014,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "8505:24:18",
                    "subExpression": {
                      "baseExpression": {
                        "id": 27010,
                        "name": "supervisors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26430,
                        "src": "8506:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 27013,
                      "indexExpression": {
                        "expression": {
                          "id": 27011,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "8518:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 27012,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8522:6:18",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "8518:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "8506:23:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27018,
                  "nodeType": "IfStatement",
                  "src": "8501:63:18",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 27015,
                        "name": "CALLER_IS_NOT_SUPERVISOR",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26408,
                        "src": "8538:24:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 27016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8538:26:18",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 27017,
                    "nodeType": "RevertStatement",
                    "src": "8531:33:18"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 27022,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 27019,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -4,
                        "src": "8578:5:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 27020,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8584:9:18",
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "src": "8578:15:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "id": 27021,
                      "name": "completionWindowEndTimestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26471,
                      "src": "8596:28:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8578:46:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27026,
                  "nodeType": "IfStatement",
                  "src": "8574:95:18",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 27023,
                        "name": "COMPLETION_WINDOW_OVER",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26404,
                        "src": "8645:22:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 27024,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8645:24:18",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 27025,
                    "nodeType": "RevertStatement",
                    "src": "8638:31:18"
                  }
                },
                {
                  "body": {
                    "id": 27059,
                    "nodeType": "Block",
                    "src": "8730:223:18",
                    "statements": [
                      {
                        "condition": {
                          "id": 27044,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "8748:44:18",
                          "subExpression": {
                            "expression": {
                              "baseExpression": {
                                "id": 27038,
                                "name": "participants",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26426,
                                "src": "8749:12:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Participant_$27741_storage_$",
                                  "typeString": "mapping(address => struct Participant storage ref)"
                                }
                              },
                              "id": 27042,
                              "indexExpression": {
                                "baseExpression": {
                                  "id": 27039,
                                  "name": "_participants",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 27007,
                                  "src": "8762:13:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "id": 27041,
                                "indexExpression": {
                                  "id": 27040,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 27028,
                                  "src": "8776:1:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8762:16:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "8749:30:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Participant_$27741_storage",
                                "typeString": "struct Participant storage ref"
                              }
                            },
                            "id": 27043,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "8780:12:18",
                            "memberName": "participated",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 27736,
                            "src": "8749:43:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 27048,
                        "nodeType": "IfStatement",
                        "src": "8744:94:18",
                        "trueBody": {
                          "errorCall": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 27045,
                              "name": "INVALID_PARTICIPANT",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26410,
                              "src": "8817:19:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 27046,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8817:21:18",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 27047,
                          "nodeType": "RevertStatement",
                          "src": "8810:28:18"
                        }
                      },
                      {
                        "condition": {
                          "expression": {
                            "baseExpression": {
                              "id": 27049,
                              "name": "participants",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26426,
                              "src": "8856:12:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Participant_$27741_storage_$",
                                "typeString": "mapping(address => struct Participant storage ref)"
                              }
                            },
                            "id": 27053,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 27050,
                                "name": "_participants",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27007,
                                "src": "8869:13:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 27052,
                              "indexExpression": {
                                "id": 27051,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27028,
                                "src": "8883:1:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "8869:16:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "8856:30:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Participant_$27741_storage",
                              "typeString": "struct Participant storage ref"
                            }
                          },
                          "id": 27054,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "8887:9:18",
                          "memberName": "completed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 27738,
                          "src": "8856:40:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 27058,
                        "nodeType": "IfStatement",
                        "src": "8852:90:18",
                        "trueBody": {
                          "errorCall": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 27055,
                              "name": "INVALID_PARTICIPANT",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26410,
                              "src": "8921:19:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 27056,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8921:21:18",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 27057,
                          "nodeType": "RevertStatement",
                          "src": "8914:28:18"
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 27034,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 27031,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27028,
                      "src": "8699:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 27032,
                        "name": "_participants",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27007,
                        "src": "8703:13:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 27033,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8717:6:18",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8703:20:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8699:24:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27060,
                  "initializationExpression": {
                    "assignments": [
                      27028
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 27028,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "8692:1:18",
                        "nodeType": "VariableDeclaration",
                        "scope": 27060,
                        "src": "8684:9:18",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 27027,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "8684:7:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 27030,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 27029,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8696:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8684:13:18"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 27036,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "8725:3:18",
                      "subExpression": {
                        "id": 27035,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27028,
                        "src": "8725:1:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 27037,
                    "nodeType": "ExpressionStatement",
                    "src": "8725:3:18"
                  },
                  "nodeType": "ForStatement",
                  "src": "8679:274:18"
                },
                {
                  "body": {
                    "id": 27082,
                    "nodeType": "Block",
                    "src": "9014:136:18",
                    "statements": [
                      {
                        "assignments": [
                          27073
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 27073,
                            "mutability": "mutable",
                            "name": "completingParticipantAddress",
                            "nameLocation": "9036:28:18",
                            "nodeType": "VariableDeclaration",
                            "scope": 27082,
                            "src": "9028:36:18",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 27072,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "9028:7:18",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 27077,
                        "initialValue": {
                          "baseExpression": {
                            "id": 27074,
                            "name": "_participants",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27007,
                            "src": "9067:13:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            }
                          },
                          "id": 27076,
                          "indexExpression": {
                            "id": 27075,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27062,
                            "src": "9081:1:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9067:16:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9028:55:18"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 27079,
                              "name": "completingParticipantAddress",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27073,
                              "src": "9110:28:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 27078,
                            "name": "_returnStake",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27004,
                            "src": "9097:12:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address)"
                            }
                          },
                          "id": 27080,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9097:42:18",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 27081,
                        "nodeType": "ExpressionStatement",
                        "src": "9097:42:18"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 27068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 27065,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27062,
                      "src": "8983:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 27066,
                        "name": "_participants",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27007,
                        "src": "8987:13:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 27067,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9001:6:18",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8987:20:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8983:24:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27083,
                  "initializationExpression": {
                    "assignments": [
                      27062
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 27062,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "8976:1:18",
                        "nodeType": "VariableDeclaration",
                        "scope": 27083,
                        "src": "8968:9:18",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 27061,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "8968:7:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 27064,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 27063,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8980:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8968:13:18"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 27070,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9009:3:18",
                      "subExpression": {
                        "id": 27069,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27062,
                        "src": "9009:1:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 27071,
                    "nodeType": "ExpressionStatement",
                    "src": "9009:3:18"
                  },
                  "nodeType": "ForStatement",
                  "src": "8963:187:18"
                },
                {
                  "expression": {
                    "id": 27086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 27084,
                      "name": "isReturnStakeCalled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26485,
                      "src": "9159:19:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 27085,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9181:4:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "9159:26:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27087,
                  "nodeType": "ExpressionStatement",
                  "src": "9159:26:18"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 27089,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "9224:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 27090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9228:6:18",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "9224:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 27091,
                        "name": "_participants",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27007,
                        "src": "9236:13:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "id": 27088,
                      "name": "ApproveForParticipants",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27567,
                      "src": "9201:22:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address,address[] memory)"
                      }
                    },
                    "id": 27092,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9201:49:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27093,
                  "nodeType": "EmitStatement",
                  "src": "9196:54:18"
                }
              ]
            },
            "baseFunctions": [
              27634
            ],
            "functionSelector": "b468aca7",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "approveForParticipants",
            "nameLocation": "8427:22:18",
            "parameters": {
              "id": 27008,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27007,
                  "mutability": "mutable",
                  "name": "_participants",
                  "nameLocation": "8467:13:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 27095,
                  "src": "8450:30:18",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 27005,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "8450:7:18",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 27006,
                    "nodeType": "ArrayTypeName",
                    "src": "8450:9:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8449:32:18"
            },
            "returnParameters": {
              "id": 27009,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8491:0:18"
            },
            "scope": 27480,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 27181,
            "nodeType": "FunctionDefinition",
            "src": "9263:847:18",
            "body": {
              "id": 27180,
              "nodeType": "Block",
              "src": "9372:738:18",
              "statements": [
                {
                  "condition": {
                    "id": 27106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "9386:33:18",
                    "subExpression": {
                      "baseExpression": {
                        "id": 27103,
                        "name": "oracleDelegates",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26434,
                        "src": "9387:15:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 27105,
                      "indexExpression": {
                        "id": 27104,
                        "name": "_oracleDelegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27097,
                        "src": "9403:15:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "9387:32:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27110,
                  "nodeType": "IfStatement",
                  "src": "9382:71:18",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 27107,
                        "name": "INVALID_ORACLE_DELEGATE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26414,
                        "src": "9428:23:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 27108,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9428:25:18",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 27109,
                    "nodeType": "RevertStatement",
                    "src": "9421:32:18"
                  }
                },
                {
                  "assignments": [
                    27113
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27113,
                      "mutability": "mutable",
                      "name": "oracleDelegate",
                      "nameLocation": "9490:14:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27180,
                      "src": "9463:41:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IPepperStakeOracleDelegate_$27694",
                        "typeString": "contract IPepperStakeOracleDelegate"
                      },
                      "typeName": {
                        "id": 27112,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 27111,
                          "name": "IPepperStakeOracleDelegate",
                          "nameLocations": [
                            "9463:26:18"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27694,
                          "src": "9463:26:18"
                        },
                        "referencedDeclaration": 27694,
                        "src": "9463:26:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IPepperStakeOracleDelegate_$27694",
                          "typeString": "contract IPepperStakeOracleDelegate"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27117,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 27115,
                        "name": "_oracleDelegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27097,
                        "src": "9547:15:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 27114,
                      "name": "IPepperStakeOracleDelegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27694,
                      "src": "9507:26:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_IPepperStakeOracleDelegate_$27694_$",
                        "typeString": "type(contract IPepperStakeOracleDelegate)"
                      }
                    },
                    "id": 27116,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9507:65:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IPepperStakeOracleDelegate_$27694",
                      "typeString": "contract IPepperStakeOracleDelegate"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9463:109:18"
                },
                {
                  "assignments": [
                    27122,
                    27124
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27122,
                      "mutability": "mutable",
                      "name": "results",
                      "nameLocation": "9597:7:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27180,
                      "src": "9583:21:18",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr",
                        "typeString": "bool[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 27120,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "9583:4:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 27121,
                        "nodeType": "ArrayTypeName",
                        "src": "9583:6:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr",
                          "typeString": "bool[]"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 27124,
                      "mutability": "mutable",
                      "name": "completionCount",
                      "nameLocation": "9614:15:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27180,
                      "src": "9606:23:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 27123,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "9606:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27129,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 27127,
                        "name": "_participants",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27100,
                        "src": "9679:13:18",
                        "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": 27125,
                        "name": "oracleDelegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27113,
                        "src": "9633:14:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IPepperStakeOracleDelegate_$27694",
                          "typeString": "contract IPepperStakeOracleDelegate"
                        }
                      },
                      "id": 27126,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9661:17:18",
                      "memberName": "checkForAddresses",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27693,
                      "src": "9633:45:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_bool_$dyn_memory_ptr_$_t_uint256_$",
                        "typeString": "function (address[] memory) view external returns (bool[] memory,uint256)"
                      }
                    },
                    "id": 27128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9633:60:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_bool_$dyn_memory_ptr_$_t_uint256_$",
                      "typeString": "tuple(bool[] memory,uint256)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9582:111:18"
                },
                {
                  "assignments": [
                    27134
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27134,
                      "mutability": "mutable",
                      "name": "completingParticipants",
                      "nameLocation": "9720:22:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27180,
                      "src": "9703:39:18",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 27132,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "9703:7:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 27133,
                        "nodeType": "ArrayTypeName",
                        "src": "9703:9:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27140,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 27138,
                        "name": "completionCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27124,
                        "src": "9772:15:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 27137,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "9745:13:18",
                      "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": 27135,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "9749:7:18",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 27136,
                        "nodeType": "ArrayTypeName",
                        "src": "9749:9:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 27139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9745:52:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9703:94:18"
                },
                {
                  "assignments": [
                    27142
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27142,
                      "mutability": "mutable",
                      "name": "winnerCount",
                      "nameLocation": "9815:11:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27180,
                      "src": "9807:19:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 27141,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "9807:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27144,
                  "initialValue": {
                    "hexValue": "30",
                    "id": 27143,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "9829:1:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9807:23:18"
                },
                {
                  "body": {
                    "id": 27172,
                    "nodeType": "Block",
                    "src": "9885:158:18",
                    "statements": [
                      {
                        "condition": {
                          "baseExpression": {
                            "id": 27156,
                            "name": "results",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27122,
                            "src": "9903:7:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr",
                              "typeString": "bool[] memory"
                            }
                          },
                          "id": 27158,
                          "indexExpression": {
                            "id": 27157,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27146,
                            "src": "9911:1:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9903:10:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 27171,
                        "nodeType": "IfStatement",
                        "src": "9899:134:18",
                        "trueBody": {
                          "id": 27170,
                          "nodeType": "Block",
                          "src": "9915:118:18",
                          "statements": [
                            {
                              "expression": {
                                "id": 27165,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 27159,
                                    "name": "completingParticipants",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 27134,
                                    "src": "9933:22:18",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 27161,
                                  "indexExpression": {
                                    "id": 27160,
                                    "name": "winnerCount",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 27142,
                                    "src": "9956:11:18",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "9933:35:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "baseExpression": {
                                    "id": 27162,
                                    "name": "_participants",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 27100,
                                    "src": "9971:13:18",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 27164,
                                  "indexExpression": {
                                    "id": 27163,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 27146,
                                    "src": "9985:1:18",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9971:16:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "9933:54:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 27166,
                              "nodeType": "ExpressionStatement",
                              "src": "9933:54:18"
                            },
                            {
                              "expression": {
                                "id": 27168,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "10005:13:18",
                                "subExpression": {
                                  "id": 27167,
                                  "name": "winnerCount",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 27142,
                                  "src": "10005:11:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 27169,
                              "nodeType": "ExpressionStatement",
                              "src": "10005:13:18"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 27152,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 27149,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27146,
                      "src": "9860:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 27150,
                        "name": "results",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27122,
                        "src": "9864:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr",
                          "typeString": "bool[] memory"
                        }
                      },
                      "id": 27151,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9872:6:18",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "9864:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9860:18:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27173,
                  "initializationExpression": {
                    "assignments": [
                      27146
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 27146,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "9853:1:18",
                        "nodeType": "VariableDeclaration",
                        "scope": 27173,
                        "src": "9845:9:18",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 27145,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "9845:7:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 27148,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 27147,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9857:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9845:13:18"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 27154,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9880:3:18",
                      "subExpression": {
                        "id": 27153,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27146,
                        "src": "9880:1:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 27155,
                    "nodeType": "ExpressionStatement",
                    "src": "9880:3:18"
                  },
                  "nodeType": "ForStatement",
                  "src": "9840:203:18"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 27177,
                        "name": "completingParticipants",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27134,
                        "src": "10080:22:18",
                        "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": 27174,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -28,
                        "src": "10052:4:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 27176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10057:22:18",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27095,
                      "src": "10052:27:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 27178,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10052:51:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27179,
                  "nodeType": "ExpressionStatement",
                  "src": "10052:51:18"
                }
              ]
            },
            "baseFunctions": [
              27642
            ],
            "functionSelector": "dcfba2ba",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "checkOracle",
            "nameLocation": "9272:11:18",
            "parameters": {
              "id": 27101,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27097,
                  "mutability": "mutable",
                  "name": "_oracleDelegate",
                  "nameLocation": "9301:15:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 27181,
                  "src": "9293:23:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 27096,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9293:7:18",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 27100,
                  "mutability": "mutable",
                  "name": "_participants",
                  "nameLocation": "9343:13:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 27181,
                  "src": "9326:30:18",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 27098,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "9326:7:18",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 27099,
                    "nodeType": "ArrayTypeName",
                    "src": "9326:9:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9283:79:18"
            },
            "returnParameters": {
              "id": 27102,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9372:0:18"
            },
            "scope": 27480,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 27261,
            "nodeType": "FunctionDefinition",
            "src": "10116:995:18",
            "body": {
              "id": 27260,
              "nodeType": "Block",
              "src": "10163:948:18",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 27188,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 27186,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 27184,
                        "name": "participantCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26473,
                        "src": "10177:16:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "id": 27185,
                        "name": "completingParticipantCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26475,
                        "src": "10196:26:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "10177:45:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 27187,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10225:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10177:49:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27259,
                  "nodeType": "IfStatement",
                  "src": "10173:932:18",
                  "trueBody": {
                    "id": 27258,
                    "nodeType": "Block",
                    "src": "10228:877:18",
                    "statements": [
                      {
                        "assignments": [
                          27193
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 27193,
                            "mutability": "mutable",
                            "name": "beneficiaries",
                            "nameLocation": "10259:13:18",
                            "nodeType": "VariableDeclaration",
                            "scope": 27258,
                            "src": "10242:30:18",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 27191,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "10242:7:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 27192,
                              "nodeType": "ArrayTypeName",
                              "src": "10242:9:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 27194,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "10242:30:18"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 27198,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 27195,
                            "name": "shouldUseSupervisorInactionGuard",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26451,
                            "src": "10290:32:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "id": 27197,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "10326:20:18",
                            "subExpression": {
                              "id": 27196,
                              "name": "isReturnStakeCalled",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26485,
                              "src": "10327:19:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "10290:56:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 27208,
                          "nodeType": "Block",
                          "src": "10501:77:18",
                          "statements": [
                            {
                              "expression": {
                                "id": 27206,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 27204,
                                  "name": "beneficiaries",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 27193,
                                  "src": "10519:13:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "id": 27205,
                                  "name": "unreturnedStakeBeneficiaries",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26441,
                                  "src": "10535:28:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                    "typeString": "address[] storage ref"
                                  }
                                },
                                "src": "10519:44:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 27207,
                              "nodeType": "ExpressionStatement",
                              "src": "10519:44:18"
                            }
                          ]
                        },
                        "id": 27209,
                        "nodeType": "IfStatement",
                        "src": "10286:292:18",
                        "trueBody": {
                          "id": 27203,
                          "nodeType": "Block",
                          "src": "10348:147:18",
                          "statements": [
                            {
                              "expression": {
                                "id": 27201,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 27199,
                                  "name": "beneficiaries",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 27193,
                                  "src": "10449:13:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "id": 27200,
                                  "name": "participantList",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26466,
                                  "src": "10465:15:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                    "typeString": "address[] storage ref"
                                  }
                                },
                                "src": "10449:31:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 27202,
                              "nodeType": "ExpressionStatement",
                              "src": "10449:31:18"
                            }
                          ]
                        }
                      },
                      {
                        "assignments": [
                          27211
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 27211,
                            "mutability": "mutable",
                            "name": "unreturnedStake",
                            "nameLocation": "10599:15:18",
                            "nodeType": "VariableDeclaration",
                            "scope": 27258,
                            "src": "10591:23:18",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 27210,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "10591:7:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 27217,
                        "initialValue": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 27214,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -28,
                                "src": "10625:4:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_PepperStake_$27480",
                                  "typeString": "contract PepperStake"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_PepperStake_$27480",
                                  "typeString": "contract PepperStake"
                                }
                              ],
                              "id": 27213,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "10617:7:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 27212,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "10617:7:18",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 27215,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10617:13:18",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 27216,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10631:7:18",
                          "memberName": "balance",
                          "nodeType": "MemberAccess",
                          "src": "10617:21:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "10591:47:18"
                      },
                      {
                        "assignments": [
                          27219
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 27219,
                            "mutability": "mutable",
                            "name": "beneficiaryShare",
                            "nameLocation": "10660:16:18",
                            "nodeType": "VariableDeclaration",
                            "scope": 27258,
                            "src": "10652:24:18",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 27218,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "10652:7:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 27226,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 27225,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 27220,
                            "name": "unreturnedStake",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27211,
                            "src": "10679:15:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 27223,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 27221,
                                  "name": "participantCount",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26473,
                                  "src": "10714:16:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "id": 27222,
                                  "name": "completingParticipantCount",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26475,
                                  "src": "10733:26:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "10714:45:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 27224,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "10713:47:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "10679:81:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "10652:108:18"
                      },
                      {
                        "body": {
                          "id": 27248,
                          "nodeType": "Block",
                          "src": "10825:85:18",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 27245,
                                    "name": "beneficiaryShare",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 27219,
                                    "src": "10878:16:18",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "arguments": [
                                      {
                                        "baseExpression": {
                                          "id": 27240,
                                          "name": "beneficiaries",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 27193,
                                          "src": "10851:13:18",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                            "typeString": "address[] memory"
                                          }
                                        },
                                        "id": 27242,
                                        "indexExpression": {
                                          "id": 27241,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 27228,
                                          "src": "10865:1:18",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "10851:16:18",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "id": 27239,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "10843:8:18",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_address_payable_$",
                                        "typeString": "type(address payable)"
                                      },
                                      "typeName": {
                                        "id": 27238,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10843:8:18",
                                        "stateMutability": "payable",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 27243,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "10843:25:18",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  "id": 27244,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "10869:8:18",
                                  "memberName": "transfer",
                                  "nodeType": "MemberAccess",
                                  "src": "10843:34:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256)"
                                  }
                                },
                                "id": 27246,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10843:52:18",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 27247,
                              "nodeType": "ExpressionStatement",
                              "src": "10843:52:18"
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 27234,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 27231,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27228,
                            "src": "10794:1:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "expression": {
                              "id": 27232,
                              "name": "beneficiaries",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27193,
                              "src": "10798:13:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            "id": 27233,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10812:6:18",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "10798:20:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "10794:24:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 27249,
                        "initializationExpression": {
                          "assignments": [
                            27228
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 27228,
                              "mutability": "mutable",
                              "name": "i",
                              "nameLocation": "10787:1:18",
                              "nodeType": "VariableDeclaration",
                              "scope": 27249,
                              "src": "10779:9:18",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 27227,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "10779:7:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 27230,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 27229,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "10791:1:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "10779:13:18"
                        },
                        "loopExpression": {
                          "expression": {
                            "id": 27236,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "10820:3:18",
                            "subExpression": {
                              "id": 27235,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27228,
                              "src": "10820:1:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 27237,
                          "nodeType": "ExpressionStatement",
                          "src": "10820:3:18"
                        },
                        "nodeType": "ForStatement",
                        "src": "10774:136:18"
                      },
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 27251,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -15,
                                "src": "10972:3:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 27252,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10976:6:18",
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "src": "10972:10:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 27253,
                              "name": "beneficiaries",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27193,
                              "src": "11000:13:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            {
                              "id": 27254,
                              "name": "unreturnedStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27211,
                              "src": "11031:15:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 27255,
                              "name": "beneficiaryShare",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27219,
                              "src": "11064:16:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 27250,
                            "name": "DistributeUnreturnedStake",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27618,
                            "src": "10929:25:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (address,address[] memory,uint256,uint256)"
                            }
                          },
                          "id": 27256,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10929:165:18",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 27257,
                        "nodeType": "EmitStatement",
                        "src": "10924:170:18"
                      }
                    ]
                  }
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_distributeUnreturnedStake",
            "nameLocation": "10125:26:18",
            "parameters": {
              "id": 27182,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10151:2:18"
            },
            "returnParameters": {
              "id": 27183,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10163:0:18"
            },
            "scope": 27480,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 27365,
            "nodeType": "FunctionDefinition",
            "src": "11117:1260:18",
            "body": {
              "id": 27364,
              "nodeType": "Block",
              "src": "11153:1224:18",
              "statements": [
                {
                  "assignments": [
                    27265
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27265,
                      "mutability": "mutable",
                      "name": "protocolFeeAmount",
                      "nameLocation": "11171:17:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27364,
                      "src": "11163:25:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 27264,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11163:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27272,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 27268,
                        "name": "totalStakeAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26479,
                        "src": "11219:16:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27269,
                        "name": "protocolFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26461,
                        "src": "11249:11:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27270,
                        "name": "MAX_FEE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26419,
                        "src": "11274:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 27266,
                        "name": "PRBMath",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26338,
                        "src": "11191:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_PRBMath_$26338_$",
                          "typeString": "type(library PRBMath)"
                        }
                      },
                      "id": 27267,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11199:6:18",
                      "memberName": "mulDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25927,
                      "src": "11191:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 27271,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11191:100:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11163:128:18"
                },
                {
                  "assignments": [
                    27274
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27274,
                      "mutability": "mutable",
                      "name": "creatorFeeAmount",
                      "nameLocation": "11309:16:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27364,
                      "src": "11301:24:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 27273,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11301:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27281,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 27277,
                        "name": "totalStakeAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26479,
                        "src": "11356:16:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27278,
                        "name": "creatorFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26455,
                        "src": "11386:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27279,
                        "name": "MAX_FEE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26419,
                        "src": "11410:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 27275,
                        "name": "PRBMath",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26338,
                        "src": "11328:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_PRBMath_$26338_$",
                          "typeString": "type(library PRBMath)"
                        }
                      },
                      "id": 27276,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11336:6:18",
                      "memberName": "mulDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25927,
                      "src": "11328:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 27280,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11328:99:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11301:126:18"
                },
                {
                  "assignments": [
                    27283
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27283,
                      "mutability": "mutable",
                      "name": "supervisorTipAmount",
                      "nameLocation": "11445:19:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27364,
                      "src": "11437:27:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 27282,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11437:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27290,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 27286,
                        "name": "totalStakeAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26479,
                        "src": "11495:16:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27287,
                        "name": "supervisorTip",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26459,
                        "src": "11525:13:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27288,
                        "name": "MAX_FEE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26419,
                        "src": "11552:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 27284,
                        "name": "PRBMath",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26338,
                        "src": "11467:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_PRBMath_$26338_$",
                          "typeString": "type(library PRBMath)"
                        }
                      },
                      "id": 27285,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11475:6:18",
                      "memberName": "mulDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25927,
                      "src": "11467:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 27289,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11467:102:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11437:132:18"
                },
                {
                  "assignments": [
                    27292
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27292,
                      "mutability": "mutable",
                      "name": "supervisorShare",
                      "nameLocation": "11587:15:18",
                      "nodeType": "VariableDeclaration",
                      "scope": 27364,
                      "src": "11579:23:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 27291,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11579:7:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27297,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 27296,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 27293,
                      "name": "supervisorTipAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27283,
                      "src": "11605:19:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "expression": {
                        "id": 27294,
                        "name": "supervisorList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26469,
                        "src": "11627:14:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 27295,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11642:6:18",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "11627:21:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11605:43:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11579:69:18"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 27300,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 27298,
                      "name": "protocolFeeAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27265,
                      "src": "11662:17:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 27299,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11682:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11662:21:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27310,
                  "nodeType": "IfStatement",
                  "src": "11658:111:18",
                  "trueBody": {
                    "id": 27309,
                    "nodeType": "Block",
                    "src": "11685:84:18",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 27306,
                              "name": "protocolFeeAmount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27265,
                              "src": "11740:17:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "arguments": [
                                {
                                  "id": 27303,
                                  "name": "protocolFeeBeneficiary",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26463,
                                  "src": "11707:22:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 27302,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "11699:8:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_payable_$",
                                  "typeString": "type(address payable)"
                                },
                                "typeName": {
                                  "id": 27301,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "11699:8:18",
                                  "stateMutability": "payable",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 27304,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11699:31:18",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 27305,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11731:8:18",
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "src": "11699:40:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 27307,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11699:59:18",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 27308,
                        "nodeType": "ExpressionStatement",
                        "src": "11699:59:18"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 27313,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 27311,
                      "name": "creatorFeeAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27274,
                      "src": "11782:16:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 27312,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11801:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11782:20:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27323,
                  "nodeType": "IfStatement",
                  "src": "11778:108:18",
                  "trueBody": {
                    "id": 27322,
                    "nodeType": "Block",
                    "src": "11804:82:18",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 27319,
                              "name": "creatorFeeAmount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27274,
                              "src": "11858:16:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "arguments": [
                                {
                                  "id": 27316,
                                  "name": "creatorFeeBeneficiary",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26457,
                                  "src": "11826:21:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 27315,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "11818:8:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_payable_$",
                                  "typeString": "type(address payable)"
                                },
                                "typeName": {
                                  "id": 27314,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "11818:8:18",
                                  "stateMutability": "payable",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 27317,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11818:30:18",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 27318,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11849:8:18",
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "src": "11818:39:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 27320,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11818:57:18",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 27321,
                        "nodeType": "ExpressionStatement",
                        "src": "11818:57:18"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 27326,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 27324,
                      "name": "supervisorTipAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27283,
                      "src": "11899:19:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 27325,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11921:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11899:23:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27351,
                  "nodeType": "IfStatement",
                  "src": "11895:190:18",
                  "trueBody": {
                    "id": 27350,
                    "nodeType": "Block",
                    "src": "11924:161:18",
                    "statements": [
                      {
                        "body": {
                          "id": 27348,
                          "nodeType": "Block",
                          "src": "11990:85:18",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 27345,
                                    "name": "supervisorShare",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 27292,
                                    "src": "12044:15:18",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "arguments": [
                                      {
                                        "baseExpression": {
                                          "id": 27340,
                                          "name": "supervisorList",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 26469,
                                          "src": "12016:14:18",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                            "typeString": "address[] storage ref"
                                          }
                                        },
                                        "id": 27342,
                                        "indexExpression": {
                                          "id": 27341,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 27328,
                                          "src": "12031:1:18",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "12016:17:18",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "id": 27339,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "12008:8:18",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_address_payable_$",
                                        "typeString": "type(address payable)"
                                      },
                                      "typeName": {
                                        "id": 27338,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12008:8:18",
                                        "stateMutability": "payable",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 27343,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "12008:26:18",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  "id": 27344,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "12035:8:18",
                                  "memberName": "transfer",
                                  "nodeType": "MemberAccess",
                                  "src": "12008:35:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256)"
                                  }
                                },
                                "id": 27346,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12008:52:18",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 27347,
                              "nodeType": "ExpressionStatement",
                              "src": "12008:52:18"
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 27334,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 27331,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27328,
                            "src": "11958:1:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "expression": {
                              "id": 27332,
                              "name": "supervisorList",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26469,
                              "src": "11962:14:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 27333,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11977:6:18",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "11962:21:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "11958:25:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 27349,
                        "initializationExpression": {
                          "assignments": [
                            27328
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 27328,
                              "mutability": "mutable",
                              "name": "i",
                              "nameLocation": "11951:1:18",
                              "nodeType": "VariableDeclaration",
                              "scope": 27349,
                              "src": "11943:9:18",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 27327,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "11943:7:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 27330,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 27329,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11955:1:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "11943:13:18"
                        },
                        "loopExpression": {
                          "expression": {
                            "id": 27336,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "11985:3:18",
                            "subExpression": {
                              "id": 27335,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27328,
                              "src": "11985:1:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 27337,
                          "nodeType": "ExpressionStatement",
                          "src": "11985:3:18"
                        },
                        "nodeType": "ForStatement",
                        "src": "11938:137:18"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 27353,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "12128:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 27354,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "12132:6:18",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "12128:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 27355,
                        "name": "protocolFeeAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27265,
                        "src": "12152:17:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27356,
                        "name": "protocolFeeBeneficiary",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26463,
                        "src": "12183:22:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 27357,
                        "name": "creatorFeeAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27274,
                        "src": "12219:16:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27358,
                        "name": "creatorFeeBeneficiary",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26457,
                        "src": "12249:21:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 27359,
                        "name": "supervisorTipAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27283,
                        "src": "12284:19:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27360,
                        "name": "supervisorList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26469,
                        "src": "12317:14:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      {
                        "id": 27361,
                        "name": "supervisorShare",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27292,
                        "src": "12345:15:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 27352,
                      "name": "DistributeFees",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27607,
                      "src": "12100:14:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256,address,uint256,address,uint256,address[] memory,uint256)"
                      }
                    },
                    "id": 27362,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12100:270:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27363,
                  "nodeType": "EmitStatement",
                  "src": "12095:275:18"
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_distributeFees",
            "nameLocation": "11126:15:18",
            "parameters": {
              "id": 27262,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11141:2:18"
            },
            "returnParameters": {
              "id": 27263,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11153:0:18"
            },
            "scope": 27480,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 27444,
            "nodeType": "FunctionDefinition",
            "src": "12383:968:18",
            "body": {
              "id": 27443,
              "nodeType": "Block",
              "src": "12434:917:18",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 27370,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 27368,
                      "name": "completingParticipantCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26475,
                      "src": "12448:26:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 27369,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12477:1:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12448:30:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27442,
                  "nodeType": "IfStatement",
                  "src": "12444:901:18",
                  "trueBody": {
                    "id": 27441,
                    "nodeType": "Block",
                    "src": "12480:865:18",
                    "statements": [
                      {
                        "assignments": [
                          27372
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 27372,
                            "mutability": "mutable",
                            "name": "beneficiaryShare",
                            "nameLocation": "12502:16:18",
                            "nodeType": "VariableDeclaration",
                            "scope": 27441,
                            "src": "12494:24:18",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 27371,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "12494:7:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 27376,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 27375,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 27373,
                            "name": "totalSponsorContribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26477,
                            "src": "12521:24:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "id": 27374,
                            "name": "completingParticipantCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26475,
                            "src": "12564:26:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12521:69:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "12494:96:18"
                      },
                      {
                        "assignments": [
                          27381
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 27381,
                            "mutability": "mutable",
                            "name": "beneficiaries",
                            "nameLocation": "12621:13:18",
                            "nodeType": "VariableDeclaration",
                            "scope": 27441,
                            "src": "12604:30:18",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 27379,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "12604:7:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 27380,
                              "nodeType": "ArrayTypeName",
                              "src": "12604:9:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 27387,
                        "initialValue": {
                          "arguments": [
                            {
                              "id": 27385,
                              "name": "completingParticipantCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26475,
                              "src": "12668:26:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 27384,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "12637:13:18",
                            "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": 27382,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "12641:7:18",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 27383,
                              "nodeType": "ArrayTypeName",
                              "src": "12641:9:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            }
                          },
                          "id": 27386,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12637:71:18",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "12604:104:18"
                      },
                      {
                        "assignments": [
                          27389
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 27389,
                            "mutability": "mutable",
                            "name": "beneficiaryIndex",
                            "nameLocation": "12730:16:18",
                            "nodeType": "VariableDeclaration",
                            "scope": 27441,
                            "src": "12722:24:18",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 27388,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "12722:7:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 27391,
                        "initialValue": {
                          "hexValue": "30",
                          "id": 27390,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12749:1:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "12722:28:18"
                      },
                      {
                        "body": {
                          "id": 27431,
                          "nodeType": "Block",
                          "src": "12811:326:18",
                          "statements": [
                            {
                              "assignments": [
                                27403
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 27403,
                                  "mutability": "mutable",
                                  "name": "participant",
                                  "nameLocation": "12837:11:18",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 27431,
                                  "src": "12829:19:18",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  "typeName": {
                                    "id": 27402,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "12829:7:18",
                                    "stateMutability": "nonpayable",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 27407,
                              "initialValue": {
                                "baseExpression": {
                                  "id": 27404,
                                  "name": "participantList",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26466,
                                  "src": "12851:15:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                    "typeString": "address[] storage ref"
                                  }
                                },
                                "id": 27406,
                                "indexExpression": {
                                  "id": 27405,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 27393,
                                  "src": "12867:1:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "12851:18:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "12829:40:18"
                            },
                            {
                              "condition": {
                                "expression": {
                                  "baseExpression": {
                                    "id": 27408,
                                    "name": "participants",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 26426,
                                    "src": "12891:12:18",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Participant_$27741_storage_$",
                                      "typeString": "mapping(address => struct Participant storage ref)"
                                    }
                                  },
                                  "id": 27410,
                                  "indexExpression": {
                                    "id": 27409,
                                    "name": "participant",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 27403,
                                    "src": "12904:11:18",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "12891:25:18",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Participant_$27741_storage",
                                    "typeString": "struct Participant storage ref"
                                  }
                                },
                                "id": 27411,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "12917:9:18",
                                "memberName": "completed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 27738,
                                "src": "12891:35:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 27430,
                              "nodeType": "IfStatement",
                              "src": "12887:236:18",
                              "trueBody": {
                                "id": 27429,
                                "nodeType": "Block",
                                "src": "12928:195:18",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "id": 27417,
                                          "name": "beneficiaryShare",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 27372,
                                          "src": "12980:16:18",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "expression": {
                                          "arguments": [
                                            {
                                              "id": 27414,
                                              "name": "participant",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 27403,
                                              "src": "12958:11:18",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                              }
                                            ],
                                            "id": 27413,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "12950:8:18",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_address_payable_$",
                                              "typeString": "type(address payable)"
                                            },
                                            "typeName": {
                                              "id": 27412,
                                              "name": "address",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "12950:8:18",
                                              "stateMutability": "payable",
                                              "typeDescriptions": {}
                                            }
                                          },
                                          "id": 27415,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "nameLocations": [],
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "12950:20:18",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                          }
                                        },
                                        "id": 27416,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "12971:8:18",
                                        "memberName": "transfer",
                                        "nodeType": "MemberAccess",
                                        "src": "12950:29:18",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                                          "typeString": "function (uint256)"
                                        }
                                      },
                                      "id": 27418,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "12950:47:18",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 27419,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12950:47:18"
                                  },
                                  {
                                    "expression": {
                                      "id": 27424,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "baseExpression": {
                                          "id": 27420,
                                          "name": "beneficiaries",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 27381,
                                          "src": "13019:13:18",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                            "typeString": "address[] memory"
                                          }
                                        },
                                        "id": 27422,
                                        "indexExpression": {
                                          "id": 27421,
                                          "name": "beneficiaryIndex",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 27389,
                                          "src": "13033:16:18",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "13019:31:18",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "id": 27423,
                                        "name": "participant",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 27403,
                                        "src": "13053:11:18",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "src": "13019:45:18",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "id": 27425,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13019:45:18"
                                  },
                                  {
                                    "expression": {
                                      "id": 27427,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "13086:18:18",
                                      "subExpression": {
                                        "id": 27426,
                                        "name": "beneficiaryIndex",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 27389,
                                        "src": "13086:16:18",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 27428,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13086:18:18"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 27398,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 27396,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27393,
                            "src": "12784:1:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 27397,
                            "name": "participantCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26473,
                            "src": "12788:16:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12784:20:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 27432,
                        "initializationExpression": {
                          "assignments": [
                            27393
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 27393,
                              "mutability": "mutable",
                              "name": "i",
                              "nameLocation": "12777:1:18",
                              "nodeType": "VariableDeclaration",
                              "scope": 27432,
                              "src": "12769:9:18",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 27392,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "12769:7:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 27395,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 27394,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12781:1:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "12769:13:18"
                        },
                        "loopExpression": {
                          "expression": {
                            "id": 27400,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "12806:3:18",
                            "subExpression": {
                              "id": 27399,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27393,
                              "src": "12806:1:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 27401,
                          "nodeType": "ExpressionStatement",
                          "src": "12806:3:18"
                        },
                        "nodeType": "ForStatement",
                        "src": "12764:373:18"
                      },
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 27434,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -15,
                                "src": "13203:3:18",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 27435,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13207:6:18",
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "src": "13203:10:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 27436,
                              "name": "beneficiaries",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27381,
                              "src": "13231:13:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            {
                              "id": 27437,
                              "name": "totalSponsorContribution",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26477,
                              "src": "13262:24:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 27438,
                              "name": "beneficiaryShare",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27372,
                              "src": "13304:16:18",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 27433,
                            "name": "DistributeSponsorContribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27588,
                            "src": "13156:29:18",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (address,address[] memory,uint256,uint256)"
                            }
                          },
                          "id": 27439,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13156:178:18",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 27440,
                        "nodeType": "EmitStatement",
                        "src": "13151:183:18"
                      }
                    ]
                  }
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_distributeSponsorContribution",
            "nameLocation": "12392:30:18",
            "parameters": {
              "id": 27366,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12422:2:18"
            },
            "returnParameters": {
              "id": 27367,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12434:0:18"
            },
            "scope": 27480,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 27479,
            "nodeType": "FunctionDefinition",
            "src": "13357:512:18",
            "body": {
              "id": 27478,
              "nodeType": "Block",
              "src": "13410:459:18",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 27450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 27447,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -4,
                        "src": "13424:5:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 27448,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13430:9:18",
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "src": "13424:15:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "id": 27449,
                      "name": "completionWindowEndTimestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26471,
                      "src": "13443:28:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13424:47:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27454,
                  "nodeType": "IfStatement",
                  "src": "13420:100:18",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 27451,
                        "name": "COMPLETION_WINDOW_NOT_OVER",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26406,
                        "src": "13492:26:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 27452,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13492:28:18",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 27453,
                    "nodeType": "RevertStatement",
                    "src": "13485:35:18"
                  }
                },
                {
                  "condition": {
                    "id": 27455,
                    "name": "isPostReturnWindowDistributionCalled",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26487,
                    "src": "13534:36:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27459,
                  "nodeType": "IfStatement",
                  "src": "13530:113:18",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 27456,
                        "name": "POST_COMPLETION_WINDOW_DISTRIBUTION_ALREADY_CALLED",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26412,
                        "src": "13591:50:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 27457,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13591:52:18",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 27458,
                    "nodeType": "RevertStatement",
                    "src": "13584:59:18"
                  }
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 27460,
                      "name": "_distributeSponsorContribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27444,
                      "src": "13653:30:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 27461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13653:32:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27462,
                  "nodeType": "ExpressionStatement",
                  "src": "13653:32:18"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 27463,
                      "name": "_distributeFees",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27365,
                      "src": "13695:15:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 27464,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13695:17:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27465,
                  "nodeType": "ExpressionStatement",
                  "src": "13695:17:18"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 27466,
                      "name": "_distributeUnreturnedStake",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27261,
                      "src": "13722:26:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 27467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13722:28:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27468,
                  "nodeType": "ExpressionStatement",
                  "src": "13722:28:18"
                },
                {
                  "expression": {
                    "id": 27471,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 27469,
                      "name": "isPostReturnWindowDistributionCalled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26487,
                      "src": "13760:36:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 27470,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13799:4:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "13760:43:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 27472,
                  "nodeType": "ExpressionStatement",
                  "src": "13760:43:18"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 27474,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "13851:3:18",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 27475,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "13855:6:18",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "13851:10:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 27473,
                      "name": "PostCompletionWindowDistribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27622,
                      "src": "13818:32:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 27476,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13818:44:18",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27477,
                  "nodeType": "EmitStatement",
                  "src": "13813:49:18"
                }
              ]
            },
            "baseFunctions": [
              27645
            ],
            "functionSelector": "db231a4f",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "postCompletionWindowDistribution",
            "nameLocation": "13366:32:18",
            "parameters": {
              "id": 27445,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13398:2:18"
            },
            "returnParameters": {
              "id": 27446,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13410:0:18"
            },
            "scope": 27480,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 26391,
              "name": "IPepperStake",
              "nameLocations": [
                "310:12:18"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 27651,
              "src": "310:12:18"
            },
            "id": 26392,
            "nodeType": "InheritanceSpecifier",
            "src": "310:12:18"
          }
        ],
        "canonicalName": "PepperStake",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          27480,
          27651
        ],
        "name": "PepperStake",
        "nameLocation": "295:11:18",
        "scope": 27481,
        "usedErrors": [
          24458,
          26394,
          26396,
          26398,
          26400,
          26402,
          26404,
          26406,
          26408,
          26410,
          26412,
          26414,
          26416
        ]
      }
    ],
    "license": "UNLICENSED"
  },
  "id": 18
}