{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_protocolFee",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_protocolFeeBeneficiary",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract IPepperStake",
          "name": "pepperStake",
          "type": "address"
        },
        {
          "indexed": false,
          "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"
            }
          ],
          "indexed": false,
          "internalType": "struct LaunchPepperStakeData",
          "name": "launchData",
          "type": "tuple"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "protocolFee",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "protocolFeeBeneficiary",
          "type": "address"
        }
      ],
      "name": "DeployPepperStake",
      "type": "event"
    },
    {
      "inputs": [
        {
          "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"
        }
      ],
      "name": "deployPepperStake",
      "outputs": [
        {
          "internalType": "contract IPepperStake",
          "name": "pepperStake",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "projectCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "protocolFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "protocolFeeBeneficiary",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x608060405234801561001057600080fd5b5060405161308438038061308483398101604081905261002f9161005c565b600091909155600180546001600160a01b0319166001600160a01b03909216919091178155600255610099565b6000806040838503121561006f57600080fd5b825160208401519092506001600160a01b038116811461008e57600080fd5b809150509250929050565b612fdc806100a86000396000f3fe60806040523480156200001157600080fd5b5060043610620000525760003560e01c806336fbad261462000057578063808ea7811462000074578063b0e21e8a14620000a4578063ceb80df214620000ae575b600080fd5b6200006160025481565b6040519081526020015b60405180910390f35b6200008b62000085366004620003bb565b620000c2565b6040516001600160a01b0390911681526020016200006b565b6200006160005481565b6001546200008b906001600160a01b031681565b600254600080546001546040519293928592916001600160a01b031690620000ea906200018c565b620000f9949392919062000631565b604051809103906000f08015801562000116573d6000803e3d6000fd5b506002546000546001546040519394506001600160a01b03808616947f0e5d73303adf8088e76929c979dfba705b8f168d7015619837d913c4d504764694620001689490938993919291169062000631565b60405180910390a2600280549060006200018283620007ac565b9190505550919050565b6127d280620007d583390190565b634e487b7160e01b600052604160045260246000fd5b6040516101c0810167ffffffffffffffff81118282101715620001d757620001d76200019a565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156200020957620002096200019a565b604052919050565b600067ffffffffffffffff8211156200022e576200022e6200019a565b5060051b60200190565b80356001600160a01b03811681146200025057600080fd5b919050565b600082601f8301126200026757600080fd5b81356020620002806200027a8362000211565b620001dd565b82815260059290921b84018101918181019086841115620002a057600080fd5b8286015b84811015620002c657620002b88162000238565b8352918301918301620002a4565b509695505050505050565b600082601f830112620002e357600080fd5b81356020620002f66200027a8362000211565b82815260059290921b840181019181810190868411156200031657600080fd5b8286015b84811015620002c657803583529183019183016200031a565b803580151581146200025057600080fd5b600082601f8301126200035657600080fd5b813567ffffffffffffffff8111156200037357620003736200019a565b62000388601f8201601f1916602001620001dd565b8181528460208386010111156200039e57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215620003ce57600080fd5b813567ffffffffffffffff80821115620003e757600080fd5b908301906101c08286031215620003fd57600080fd5b62000407620001b0565b8235828111156200041757600080fd5b620004258782860162000255565b8252506020830135828111156200043b57600080fd5b620004498782860162000255565b6020830152506040830135828111156200046257600080fd5b620004708782860162000255565b6040830152506060830135828111156200048957600080fd5b620004978782860162000255565b606083015250608083013582811115620004b057600080fd5b620004be87828601620002d1565b60808301525060a083013560a082015260c083013560c0820152620004e660e0840162000333565b60e0820152610100620004fb81850162000333565b908201526101206200050f84820162000333565b9082015261014083810135908201526101606200052e81850162000238565b9082015261018083810135908201526101a080840135838111156200055257600080fd5b620005608882870162000344565b918301919091525095945050505050565b600081518084526020808501945080840160005b83811015620005ac5781516001600160a01b03168752958201959082019060010162000585565b509495945050505050565b600081518084526020808501945080840160005b83811015620005ac57815187529582019590820190600101620005cb565b6000815180845260005b818110156200061157602081850181015186830182015201620005f3565b506000602082860101526020601f19601f83011685010191505092915050565b84815260806020820152600084516101c08060808501526200065861024085018362000571565b91506020870151607f19808685030160a087015262000678848362000571565b935060408901519150808685030160c087015262000697848362000571565b935060608901519150808685030160e0870152620006b6848362000571565b935060808901519150610100818786030181880152620006d78584620005b7565b945060a08a01519250610120838189015260c08b0151935061014084818a015260e08c015194506101606200070f818b018715159052565b928c0151945061018092620007278a85018715159052565b918c015194506101a0916200073f8a84018715159052565b908c015195890195909552938a01516001600160a01b03166101e08801528901516102008701529188015185840390920161022086015250620007838282620005e9565b92505050836040830152620007a360608301846001600160a01b03169052565b95945050505050565b600060018201620007cd57634e487b7160e01b600052601160045260246000fd5b506001019056fe6080604052633b9aca00600055604051620027d2380380620027d28339810160408190526200002e9162000a59565b60005461018084015161014085015162000049908562000c4b565b62000055919062000c4b565b111562000075576040516352265f9760e11b815260040160405180910390fd5b600184905560005b835151811015620000ee5760016003600086600001518481518110620000a757620000a762000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000e58162000c7d565b9150506200007d565b5060005b836060015151811015620001c457600160046000866060015184815181106200011f576200011f62000c67565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000866060015184815181106200017d576200017d62000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620001bb8162000c7d565b915050620000f2565b508260e0015115620002495760005b83602001515181101562000247576001600260008660200151848151811062000200576200020062000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200023e8162000c7d565b915050620001d3565b505b60005b836080015151811015620002bc576001600560008660800151848151811062000279576200027962000c67565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080620002b39062000c7d565b9150506200024c565b5060408301518051620002d891600691602090910190620007a4565b5060a083015160075560c0830151600855610100808401516009805461012087015160e088015162ffff001990921693151590940262ff000019169290921762010000931515939093029290921760ff19169015151790556101a0830151600a9062000345908262000d28565b50825180516200035e91601191602090910190620007a4565b50306000908152600360205260409020805460ff19166001179055610140830151600b55610160830151600c80546001600160a01b039283166001600160a01b031991821617909155610180850151600d55600e849055600f805492841692909116919091179055600754620003d5904262000c4b565b6012556000601381905560148190556015819055601681905560178190556018556019805461ffff1916905534156200041257620004126200041c565b5050505062000e0a565b60095460ff1680156200043f57503360009081526002602052604090205460ff16155b156200045e57604051631939666560e21b815260040160405180910390fd5b600854601354106200048357604051631e74b6b760e11b815260040160405180910390fd5b33600090815260026020526040902054610100900460ff1615620004ba57604051635fdadce760e01b815260040160405180910390fd5b601254421115620004de576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526005602052604090205460ff166200050f57604051630be5378760e21b815260040160405180910390fd5b60408051608081018252600180825260208083018281526000848601818152346060870190815233808452600290955296822086518154945192511515620100000262ff0000199315156101000261ff00199215159290921661ffff1990961695909517179190911692909217825594519083015560108054928301815584527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67290910180546001600160a01b0319169091179055601380549192620005d58362000c7d565b91905055503460166000828254620005ee919062000c4b565b9250508190555060006200061334600e54600054620006c760201b62000af61760201c565b905060006200063334600b54600054620006c760201b62000af61760201c565b905060006200065334600d54600054620006c760201b62000af61760201c565b905060008162000664848662000c4b565b62000670919062000c4b565b9050806018600082825462000686919062000c4b565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a25050505050565b60008080600019858709858702925082811083820303915050806000036200070657838281620006fb57620006fb62000df4565b04925050506200079d565b8381106200073557604051631dcf306360e21b8152600481018290526024810185905260440160405180910390fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b828054828255906000526020600020908101928215620007fc579160200282015b82811115620007fc57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620007c5565b506200080a9291506200080e565b5090565b5b808211156200080a57600081556001016200080f565b634e487b7160e01b600052604160045260246000fd5b6040516101c081016001600160401b038111828210171562000861576200086162000825565b60405290565b604051601f8201601f191681016001600160401b038111828210171562000892576200089262000825565b604052919050565b60006001600160401b03821115620008b657620008b662000825565b5060051b60200190565b80516001600160a01b0381168114620008d857600080fd5b919050565b600082601f830112620008ef57600080fd5b815160206200090862000902836200089a565b62000867565b82815260059290921b840181019181810190868411156200092857600080fd5b8286015b848110156200094e576200094081620008c0565b83529183019183016200092c565b509695505050505050565b600082601f8301126200096b57600080fd5b815160206200097e62000902836200089a565b82815260059290921b840181019181810190868411156200099e57600080fd5b8286015b848110156200094e5780518352918301918301620009a2565b80518015158114620008d857600080fd5b600082601f830112620009de57600080fd5b81516001600160401b03811115620009fa57620009fa62000825565b602062000a10601f8301601f1916820162000867565b828152858284870101111562000a2557600080fd5b60005b8381101562000a4557858101830151828201840152820162000a28565b506000928101909101919091529392505050565b6000806000806080858703121562000a7057600080fd5b845160208601519094506001600160401b038082111562000a9057600080fd5b908601906101c0828903121562000aa657600080fd5b62000ab06200083b565b82518281111562000ac057600080fd5b62000ace8a828601620008dd565b82525060208301518281111562000ae457600080fd5b62000af28a828601620008dd565b60208301525060408301518281111562000b0b57600080fd5b62000b198a828601620008dd565b60408301525060608301518281111562000b3257600080fd5b62000b408a828601620008dd565b60608301525060808301518281111562000b5957600080fd5b62000b678a82860162000959565b60808301525060a083015160a082015260c083015160c082015262000b8f60e08401620009bb565b60e082015261010062000ba4818501620009bb565b9082015261012062000bb8848201620009bb565b90820152610140838101519082015261016062000bd7818501620008c0565b9082015261018083810151908201526101a0808401518381111562000bfb57600080fd5b62000c098b828701620009cc565b8284015250508095505050506040850151915062000c2a60608601620008c0565b905092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000c615762000c6162000c35565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006001820162000c925762000c9262000c35565b5060010190565b600181811c9082168062000cae57607f821691505b60208210810362000ccf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000d2357600081815260208120601f850160051c8101602086101562000cfe5750805b601f850160051c820191505b8181101562000d1f5782815560010162000d0a565b5050505b505050565b81516001600160401b0381111562000d445762000d4462000825565b62000d5c8162000d55845462000c99565b8462000cd5565b602080601f83116001811462000d94576000841562000d7b5750858301515b600019600386901b1c1916600185901b17855562000d1f565b600085815260208120601f198616915b8281101562000dc55788860151825594840194600190910190840162000da4565b508582101562000de45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601260045260246000fd5b6119b88062000e1a6000396000f3fe6080604052600436106101b75760003560e01c80637df7c74f116100ec578063b468aca71161008a578063db231a4f11610064578063db231a4f146104db578063dcfba2ba146104f0578063e548e3e714610510578063f3ac01b91461054057600080fd5b8063b468aca71461046b578063cebf058f1461048b578063d50267ee146104ab57600080fd5b8063922fce95116100c6578063922fce95146104065780639340fd511461042557806394409a561461043f578063aa546a9e1461045557600080fd5b80637df7c74f146103975780638b301e2b146103b65780638f57727d146103d657600080fd5b8063362f04c01161015957806356539f391161013357806356539f391461034e5780635d758d391461036357806360c6d8ae1461037957806377c936621461038f57600080fd5b8063362f04c01461030e5780633a4b66f1146103245780633ccd928a1461032e57600080fd5b8063157135661161019557806315713566146102945780631f7180dd146102be57806324924bf7146102e257806334908c16146102f857600080fd5b806303ee438c146101bc57806309e69ede146101e75780630e6fdaa11461025c575b600080fd5b3480156101c857600080fd5b506101d1610556565b6040516101de91906114ee565b60405180910390f35b3480156101f357600080fd5b50610234610202366004611558565b6002602052600090815260409020805460019091015460ff808316926101008104821692620100009091049091169084565b60408051941515855292151560208501529015159183019190915260608201526080016101de565b34801561026857600080fd5b5061027c610277366004611573565b6105e4565b6040516001600160a01b0390911681526020016101de565b3480156102a057600080fd5b506019546102ae9060ff1681565b60405190151581526020016101de565b3480156102ca57600080fd5b506102d460145481565b6040519081526020016101de565b3480156102ee57600080fd5b506102d460085481565b34801561030457600080fd5b506102d460175481565b34801561031a57600080fd5b506102d460135481565b61032c61060e565b005b34801561033a57600080fd5b5061027c610349366004611573565b610618565b34801561035a57600080fd5b506001546102d4565b34801561036f57600080fd5b506102d460075481565b34801561038557600080fd5b506102d460185481565b61032c610628565b3480156103a357600080fd5b506009546102ae90610100900460ff1681565b3480156103c257600080fd5b5061027c6103d1366004611573565b610699565b3480156103e257600080fd5b506102ae6103f1366004611558565b60046020526000908152604090205460ff1681565b34801561041257600080fd5b506019546102ae90610100900460ff1681565b34801561043157600080fd5b506009546102ae9060ff1681565b34801561044b57600080fd5b506102d460165481565b34801561046157600080fd5b506102d460155481565b34801561047757600080fd5b5061032c610486366004611669565b6106a9565b34801561049757600080fd5b506009546102ae9062010000900460ff1681565b3480156104b757600080fd5b506102ae6104c6366004611573565b60056020526000908152604090205460ff1681565b3480156104e757600080fd5b5061032c61086c565b3480156104fc57600080fd5b5061032c61050b3660046116a6565b61090b565b34801561051c57600080fd5b506102ae61052b366004611558565b60036020526000908152604090205460ff1681565b34801561054c57600080fd5b506102d460125481565b600a8054610563906116f4565b80601f016020809104026020016040519081016040528092919081815260200182805461058f906116f4565b80156105dc5780601f106105b1576101008083540402835291602001916105dc565b820191906000526020600020905b8154815290600101906020018083116105bf57829003601f168201915b505050505081565b601081815481106105f457600080fd5b6000918252602090912001546001600160a01b0316905081565b610616610bcd565b565b601181815481106105f457600080fd5b60125442111561064b576040516362ca2fcd60e01b815260040160405180910390fd5b346015600082825461065d9190611744565b909155505060405134815233907f74194cee4daf68c6858b41efe9729cf57988cee7f447442f39a1e2adafd4e0219060200160405180910390a2565b600681815481106105f457600080fd5b3360009081526003602052604090205460ff166106d9576040516364f5dc8560e01b815260040160405180910390fd5b6012544211156106fc576040516362ca2fcd60e01b815260040160405180910390fd5b60005b81518110156107da576002600083838151811061071e5761071e61175d565b6020908102919091018101516001600160a01b0316825281019190915260400160002054610100900460ff16610767576040516379c6621560e01b815260040160405180910390fd5b6002600083838151811061077d5761077d61175d565b6020908102919091018101516001600160a01b031682528101919091526040016000205462010000900460ff16156107c8576040516379c6621560e01b815260040160405180910390fd5b806107d281611773565b9150506106ff565b5060005b81518110156108215760008282815181106107fb576107fb61175d565b6020026020010151905061080e81610e41565b508061081981611773565b9150506107de565b506019805460ff1916600117905560405133907f440c93edea69d1cf0502a6e259d2bcaf3e0a4f16428ddd3b6f5b68081e27eea3906108619084906117d0565b60405180910390a250565b601254421161088e5760405163066a900960e21b815260040160405180910390fd5b601954610100900460ff16156108b7576040516376e5413b60e11b815260040160405180910390fd5b6108bf610fed565b6108c7611174565b6108cf611323565b6019805461ff00191661010017905560405133907f8e4581edbcde6e54b523f4d359eb0eff7308e8d3e14ff8eac7e7705b4b98a62a90600090a2565b6001600160a01b03821660009081526004602052604090205460ff166109445760405163d67d8ec560e01b815260040160405180910390fd5b60405163091f613f60e11b8152829060009081906001600160a01b0384169063123ec27e906109779087906004016117d0565b600060405180830381865afa158015610994573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109bc91908101906117e3565b9150915060008167ffffffffffffffff8111156109db576109db61158c565b604051908082528060200260200182016040528015610a04578160200160208202803683370190505b5090506000805b8451811015610a9757848181518110610a2657610a2661175d565b602002602001015115610a8557868181518110610a4557610a4561175d565b6020026020010151838381518110610a5f57610a5f61175d565b6001600160a01b039092166020928302919091019091015281610a8181611773565b9250505b80610a8f81611773565b915050610a0b565b5060405163b468aca760e01b8152309063b468aca790610abb9085906004016117d0565b600060405180830381600087803b158015610ad557600080fd5b505af1158015610ae9573d6000803e3d6000fd5b5050505050505050505050565b6000808060001985870985870292508281108382030391505080600003610b3057838281610b2657610b2661188b565b0492505050610bc6565b838110610b5e57604051631dcf306360e21b8152600481018290526024810185905260440160405180910390fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b60095460ff168015610bef57503360009081526002602052604090205460ff16155b15610c0d57604051631939666560e21b815260040160405180910390fd5b60085460135410610c3157604051631e74b6b760e11b815260040160405180910390fd5b33600090815260026020526040902054610100900460ff1615610c6757604051635fdadce760e01b815260040160405180910390fd5b601254421115610c8a576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526005602052604090205460ff16610cba57604051630be5378760e21b815260040160405180910390fd5b60408051608081018252600180825260208083018281526000848601818152346060870190815233808452600290955296822086518154945192511515620100000262ff0000199315156101000261ff00199215159290921661ffff1990961695909517179190911692909217825594519083015560108054928301815584527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67290910180546001600160a01b0319169091179055601380549192610d7e83611773565b91905055503460166000828254610d959190611744565b925050819055506000610dad34600e54600054610af6565b90506000610dc034600b54600054610af6565b90506000610dd334600d54600054610af6565b9050600081610de28486611744565b610dec9190611744565b90508060186000828254610e009190611744565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a25050505050565b6001600160a01b03811660009081526002602090815260408083208151608081018352815460ff80821615158352610100820481161515958301959095526201000090049093161515918301919091526001015460608201819052600e548354929392610eaf929190610af6565b90506000610ec68360600151600b54600054610af6565b90506000610edd8460600151600d54600054610af6565b9050600081610eec8486611744565b610ef69190611744565b90506000818660600151610f0a91906118a1565b6040519091506001600160a01b0388169082156108fc029083906000818181858888f19350505050158015610f43573d6000803e3d6000fd5b506001600160a01b0387166000908152600260205260408120805462ff00001916620100001790556014805491610f7983611773565b91905055508060176000828254610f909190611744565b9091555050606080870151604080519182526020820185905281018390526001600160a01b038916917f3c6d034538fc1be4c1c02283083c593ad4546ace8a6713cb5fb2ecb705a41446910160405180910390a250505050505050565b6014541561061657600060145460155461100791906118b4565b9050600060145467ffffffffffffffff8111156110265761102661158c565b60405190808252806020026020018201604052801561104f578160200160208202803683370190505b5090506000805b60135481101561112f576000601082815481106110755761107561175d565b60009182526020808320909101546001600160a01b0316808352600290915260409091205490915060ff62010000909104161561111c576040516001600160a01b0382169086156108fc029087906000818181858888f193505050501580156110e2573d6000803e3d6000fd5b50808484815181106110f6576110f661175d565b6001600160a01b03909216602092830291909101909101528261111881611773565b9350505b508061112781611773565b915050611056565b5060155460405133917f2114d896257ce5a58e1c18ae0d1cb1bd56f2f18c8b5a78e4541b48f40883b5af9161116791869188906118d6565b60405180910390a2505050565b6000611187601654600e54600054610af6565b9050600061119c601654600b54600054610af6565b905060006111b1601654600d54600054610af6565b6011549091506000906111c490836118b4565b9050831561120857600f546040516001600160a01b039091169085156108fc029086906000818181858888f19350505050158015611206573d6000803e3d6000fd5b505b821561124a57600c546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015611248573d6000803e3d6000fd5b505b81156112c55760005b6011548110156112c357601181815481106112705761127061175d565b60009182526020822001546040516001600160a01b039091169184156108fc02918591818181858888f193505050501580156112b0573d6000803e3d6000fd5b50806112bb81611773565b915050611253565b505b600f54600c5460405133927ff50e8e029e43d877ce362cea5cb5693fcf553b41d0bc26d03ee286b56964bafb926113159289926001600160a01b03908116928a9291169089906011908a906118fb565b60405180910390a250505050565b600060145460135461133591906118a1565b11156106165760095460609062010000900460ff168015611359575060195460ff16155b156113c05760108054806020026020016040519081016040528092919081815260200182805480156113b457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611396575b5050505050905061141e565b600680548060200260200160405190810160405280929190818152602001828054801561141657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113f8575b505050505090505b601454601354479160009161143391906118a1565b61143d90836118b4565b905060005b83518110156114b05783818151811061145d5761145d61175d565b60200260200101516001600160a01b03166108fc839081150290604051600060405180830381858888f1935050505015801561149d573d6000803e3d6000fd5b50806114a881611773565b915050611442565b50336001600160a01b03167f1a50eba3476dd09ccdbee500a30b43381479c55b92f8ea25850f819ec591a520848484604051611167939291906118d6565b600060208083528351808285015260005b8181101561151b578581018301518582016040015282016114ff565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461155357600080fd5b919050565b60006020828403121561156a57600080fd5b610bc68261153c565b60006020828403121561158557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156115cb576115cb61158c565b604052919050565b600067ffffffffffffffff8211156115ed576115ed61158c565b5060051b60200190565b600082601f83011261160857600080fd5b8135602061161d611618836115d3565b6115a2565b82815260059290921b8401810191818101908684111561163c57600080fd5b8286015b8481101561165e576116518161153c565b8352918301918301611640565b509695505050505050565b60006020828403121561167b57600080fd5b813567ffffffffffffffff81111561169257600080fd5b61169e848285016115f7565b949350505050565b600080604083850312156116b957600080fd5b6116c28361153c565b9150602083013567ffffffffffffffff8111156116de57600080fd5b6116ea858286016115f7565b9150509250929050565b600181811c9082168061170857607f821691505b60208210810361172857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156117575761175761172e565b92915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016117855761178561172e565b5060010190565b600081518084526020808501945080840160005b838110156117c55781516001600160a01b0316875295820195908201906001016117a0565b509495945050505050565b602081526000610bc6602083018461178c565b600080604083850312156117f657600080fd5b825167ffffffffffffffff81111561180d57600080fd5b8301601f8101851361181e57600080fd5b8051602061182e611618836115d3565b82815260059290921b8301810191818101908884111561184d57600080fd5b938201935b8385101561187a578451801515811461186b5760008081fd5b82529382019390820190611852565b969091015195979596505050505050565b634e487b7160e01b600052601260045260246000fd5b818103818111156117575761175761172e565b6000826118d157634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006118e9606083018661178c565b60208301949094525060400152919050565b600060e08201898352602060018060a01b03808b1682860152896040860152808916606086015287608086015260e060a0860152828754808552610100870191508860005283600020945060005b81811015611967578554841683526001958601959285019201611949565b5050809450505050508260c08301529897505050505050505056fea26469706673582212209a4c52bf904012786dbf4b13678b4ede180c0089fbc1fbf7a309a4faac35883a64736f6c63430008110033a2646970667358221220c323c9f6e4bee908d61575b74853ce0470cb418660827c82ad5d882c71e8083264736f6c63430008110033",
    "sourceMap": "142:1193:19:-:0;;;311:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;388:11;:26;;;;424:22;:48;;-1:-1:-1;;;;;;424:48:19;-1:-1:-1;;;;;424:48:19;;;;;;;;;482:12;:16;142:1193;;14:351:30;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;193:16;;252:2;237:18;;231:25;193:16;;-1:-1:-1;;;;;;285:31:30;;275:42;;265:70;;331:1;328;321:12;265:70;354:5;344:15;;;14:351;;;;;:::o;:::-;142:1193:19;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x60806040523480156200001157600080fd5b5060043610620000525760003560e01c806336fbad261462000057578063808ea7811462000074578063b0e21e8a14620000a4578063ceb80df214620000ae575b600080fd5b6200006160025481565b6040519081526020015b60405180910390f35b6200008b62000085366004620003bb565b620000c2565b6040516001600160a01b0390911681526020016200006b565b6200006160005481565b6001546200008b906001600160a01b031681565b600254600080546001546040519293928592916001600160a01b031690620000ea906200018c565b620000f9949392919062000631565b604051809103906000f08015801562000116573d6000803e3d6000fd5b506002546000546001546040519394506001600160a01b03808616947f0e5d73303adf8088e76929c979dfba705b8f168d7015619837d913c4d504764694620001689490938993919291169062000631565b60405180910390a2600280549060006200018283620007ac565b9190505550919050565b6127d280620007d583390190565b634e487b7160e01b600052604160045260246000fd5b6040516101c0810167ffffffffffffffff81118282101715620001d757620001d76200019a565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156200020957620002096200019a565b604052919050565b600067ffffffffffffffff8211156200022e576200022e6200019a565b5060051b60200190565b80356001600160a01b03811681146200025057600080fd5b919050565b600082601f8301126200026757600080fd5b81356020620002806200027a8362000211565b620001dd565b82815260059290921b84018101918181019086841115620002a057600080fd5b8286015b84811015620002c657620002b88162000238565b8352918301918301620002a4565b509695505050505050565b600082601f830112620002e357600080fd5b81356020620002f66200027a8362000211565b82815260059290921b840181019181810190868411156200031657600080fd5b8286015b84811015620002c657803583529183019183016200031a565b803580151581146200025057600080fd5b600082601f8301126200035657600080fd5b813567ffffffffffffffff8111156200037357620003736200019a565b62000388601f8201601f1916602001620001dd565b8181528460208386010111156200039e57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215620003ce57600080fd5b813567ffffffffffffffff80821115620003e757600080fd5b908301906101c08286031215620003fd57600080fd5b62000407620001b0565b8235828111156200041757600080fd5b620004258782860162000255565b8252506020830135828111156200043b57600080fd5b620004498782860162000255565b6020830152506040830135828111156200046257600080fd5b620004708782860162000255565b6040830152506060830135828111156200048957600080fd5b620004978782860162000255565b606083015250608083013582811115620004b057600080fd5b620004be87828601620002d1565b60808301525060a083013560a082015260c083013560c0820152620004e660e0840162000333565b60e0820152610100620004fb81850162000333565b908201526101206200050f84820162000333565b9082015261014083810135908201526101606200052e81850162000238565b9082015261018083810135908201526101a080840135838111156200055257600080fd5b620005608882870162000344565b918301919091525095945050505050565b600081518084526020808501945080840160005b83811015620005ac5781516001600160a01b03168752958201959082019060010162000585565b509495945050505050565b600081518084526020808501945080840160005b83811015620005ac57815187529582019590820190600101620005cb565b6000815180845260005b818110156200061157602081850181015186830182015201620005f3565b506000602082860101526020601f19601f83011685010191505092915050565b84815260806020820152600084516101c08060808501526200065861024085018362000571565b91506020870151607f19808685030160a087015262000678848362000571565b935060408901519150808685030160c087015262000697848362000571565b935060608901519150808685030160e0870152620006b6848362000571565b935060808901519150610100818786030181880152620006d78584620005b7565b945060a08a01519250610120838189015260c08b0151935061014084818a015260e08c015194506101606200070f818b018715159052565b928c0151945061018092620007278a85018715159052565b918c015194506101a0916200073f8a84018715159052565b908c015195890195909552938a01516001600160a01b03166101e08801528901516102008701529188015185840390920161022086015250620007838282620005e9565b92505050836040830152620007a360608301846001600160a01b03169052565b95945050505050565b600060018201620007cd57634e487b7160e01b600052601160045260246000fd5b506001019056fe6080604052633b9aca00600055604051620027d2380380620027d28339810160408190526200002e9162000a59565b60005461018084015161014085015162000049908562000c4b565b62000055919062000c4b565b111562000075576040516352265f9760e11b815260040160405180910390fd5b600184905560005b835151811015620000ee5760016003600086600001518481518110620000a757620000a762000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000e58162000c7d565b9150506200007d565b5060005b836060015151811015620001c457600160046000866060015184815181106200011f576200011f62000c67565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000866060015184815181106200017d576200017d62000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620001bb8162000c7d565b915050620000f2565b508260e0015115620002495760005b83602001515181101562000247576001600260008660200151848151811062000200576200020062000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200023e8162000c7d565b915050620001d3565b505b60005b836080015151811015620002bc576001600560008660800151848151811062000279576200027962000c67565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080620002b39062000c7d565b9150506200024c565b5060408301518051620002d891600691602090910190620007a4565b5060a083015160075560c0830151600855610100808401516009805461012087015160e088015162ffff001990921693151590940262ff000019169290921762010000931515939093029290921760ff19169015151790556101a0830151600a9062000345908262000d28565b50825180516200035e91601191602090910190620007a4565b50306000908152600360205260409020805460ff19166001179055610140830151600b55610160830151600c80546001600160a01b039283166001600160a01b031991821617909155610180850151600d55600e849055600f805492841692909116919091179055600754620003d5904262000c4b565b6012556000601381905560148190556015819055601681905560178190556018556019805461ffff1916905534156200041257620004126200041c565b5050505062000e0a565b60095460ff1680156200043f57503360009081526002602052604090205460ff16155b156200045e57604051631939666560e21b815260040160405180910390fd5b600854601354106200048357604051631e74b6b760e11b815260040160405180910390fd5b33600090815260026020526040902054610100900460ff1615620004ba57604051635fdadce760e01b815260040160405180910390fd5b601254421115620004de576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526005602052604090205460ff166200050f57604051630be5378760e21b815260040160405180910390fd5b60408051608081018252600180825260208083018281526000848601818152346060870190815233808452600290955296822086518154945192511515620100000262ff0000199315156101000261ff00199215159290921661ffff1990961695909517179190911692909217825594519083015560108054928301815584527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67290910180546001600160a01b0319169091179055601380549192620005d58362000c7d565b91905055503460166000828254620005ee919062000c4b565b9250508190555060006200061334600e54600054620006c760201b62000af61760201c565b905060006200063334600b54600054620006c760201b62000af61760201c565b905060006200065334600d54600054620006c760201b62000af61760201c565b905060008162000664848662000c4b565b62000670919062000c4b565b9050806018600082825462000686919062000c4b565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a25050505050565b60008080600019858709858702925082811083820303915050806000036200070657838281620006fb57620006fb62000df4565b04925050506200079d565b8381106200073557604051631dcf306360e21b8152600481018290526024810185905260440160405180910390fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b828054828255906000526020600020908101928215620007fc579160200282015b82811115620007fc57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620007c5565b506200080a9291506200080e565b5090565b5b808211156200080a57600081556001016200080f565b634e487b7160e01b600052604160045260246000fd5b6040516101c081016001600160401b038111828210171562000861576200086162000825565b60405290565b604051601f8201601f191681016001600160401b038111828210171562000892576200089262000825565b604052919050565b60006001600160401b03821115620008b657620008b662000825565b5060051b60200190565b80516001600160a01b0381168114620008d857600080fd5b919050565b600082601f830112620008ef57600080fd5b815160206200090862000902836200089a565b62000867565b82815260059290921b840181019181810190868411156200092857600080fd5b8286015b848110156200094e576200094081620008c0565b83529183019183016200092c565b509695505050505050565b600082601f8301126200096b57600080fd5b815160206200097e62000902836200089a565b82815260059290921b840181019181810190868411156200099e57600080fd5b8286015b848110156200094e5780518352918301918301620009a2565b80518015158114620008d857600080fd5b600082601f830112620009de57600080fd5b81516001600160401b03811115620009fa57620009fa62000825565b602062000a10601f8301601f1916820162000867565b828152858284870101111562000a2557600080fd5b60005b8381101562000a4557858101830151828201840152820162000a28565b506000928101909101919091529392505050565b6000806000806080858703121562000a7057600080fd5b845160208601519094506001600160401b038082111562000a9057600080fd5b908601906101c0828903121562000aa657600080fd5b62000ab06200083b565b82518281111562000ac057600080fd5b62000ace8a828601620008dd565b82525060208301518281111562000ae457600080fd5b62000af28a828601620008dd565b60208301525060408301518281111562000b0b57600080fd5b62000b198a828601620008dd565b60408301525060608301518281111562000b3257600080fd5b62000b408a828601620008dd565b60608301525060808301518281111562000b5957600080fd5b62000b678a82860162000959565b60808301525060a083015160a082015260c083015160c082015262000b8f60e08401620009bb565b60e082015261010062000ba4818501620009bb565b9082015261012062000bb8848201620009bb565b90820152610140838101519082015261016062000bd7818501620008c0565b9082015261018083810151908201526101a0808401518381111562000bfb57600080fd5b62000c098b828701620009cc565b8284015250508095505050506040850151915062000c2a60608601620008c0565b905092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000c615762000c6162000c35565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006001820162000c925762000c9262000c35565b5060010190565b600181811c9082168062000cae57607f821691505b60208210810362000ccf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000d2357600081815260208120601f850160051c8101602086101562000cfe5750805b601f850160051c820191505b8181101562000d1f5782815560010162000d0a565b5050505b505050565b81516001600160401b0381111562000d445762000d4462000825565b62000d5c8162000d55845462000c99565b8462000cd5565b602080601f83116001811462000d94576000841562000d7b5750858301515b600019600386901b1c1916600185901b17855562000d1f565b600085815260208120601f198616915b8281101562000dc55788860151825594840194600190910190840162000da4565b508582101562000de45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601260045260246000fd5b6119b88062000e1a6000396000f3fe6080604052600436106101b75760003560e01c80637df7c74f116100ec578063b468aca71161008a578063db231a4f11610064578063db231a4f146104db578063dcfba2ba146104f0578063e548e3e714610510578063f3ac01b91461054057600080fd5b8063b468aca71461046b578063cebf058f1461048b578063d50267ee146104ab57600080fd5b8063922fce95116100c6578063922fce95146104065780639340fd511461042557806394409a561461043f578063aa546a9e1461045557600080fd5b80637df7c74f146103975780638b301e2b146103b65780638f57727d146103d657600080fd5b8063362f04c01161015957806356539f391161013357806356539f391461034e5780635d758d391461036357806360c6d8ae1461037957806377c936621461038f57600080fd5b8063362f04c01461030e5780633a4b66f1146103245780633ccd928a1461032e57600080fd5b8063157135661161019557806315713566146102945780631f7180dd146102be57806324924bf7146102e257806334908c16146102f857600080fd5b806303ee438c146101bc57806309e69ede146101e75780630e6fdaa11461025c575b600080fd5b3480156101c857600080fd5b506101d1610556565b6040516101de91906114ee565b60405180910390f35b3480156101f357600080fd5b50610234610202366004611558565b6002602052600090815260409020805460019091015460ff808316926101008104821692620100009091049091169084565b60408051941515855292151560208501529015159183019190915260608201526080016101de565b34801561026857600080fd5b5061027c610277366004611573565b6105e4565b6040516001600160a01b0390911681526020016101de565b3480156102a057600080fd5b506019546102ae9060ff1681565b60405190151581526020016101de565b3480156102ca57600080fd5b506102d460145481565b6040519081526020016101de565b3480156102ee57600080fd5b506102d460085481565b34801561030457600080fd5b506102d460175481565b34801561031a57600080fd5b506102d460135481565b61032c61060e565b005b34801561033a57600080fd5b5061027c610349366004611573565b610618565b34801561035a57600080fd5b506001546102d4565b34801561036f57600080fd5b506102d460075481565b34801561038557600080fd5b506102d460185481565b61032c610628565b3480156103a357600080fd5b506009546102ae90610100900460ff1681565b3480156103c257600080fd5b5061027c6103d1366004611573565b610699565b3480156103e257600080fd5b506102ae6103f1366004611558565b60046020526000908152604090205460ff1681565b34801561041257600080fd5b506019546102ae90610100900460ff1681565b34801561043157600080fd5b506009546102ae9060ff1681565b34801561044b57600080fd5b506102d460165481565b34801561046157600080fd5b506102d460155481565b34801561047757600080fd5b5061032c610486366004611669565b6106a9565b34801561049757600080fd5b506009546102ae9062010000900460ff1681565b3480156104b757600080fd5b506102ae6104c6366004611573565b60056020526000908152604090205460ff1681565b3480156104e757600080fd5b5061032c61086c565b3480156104fc57600080fd5b5061032c61050b3660046116a6565b61090b565b34801561051c57600080fd5b506102ae61052b366004611558565b60036020526000908152604090205460ff1681565b34801561054c57600080fd5b506102d460125481565b600a8054610563906116f4565b80601f016020809104026020016040519081016040528092919081815260200182805461058f906116f4565b80156105dc5780601f106105b1576101008083540402835291602001916105dc565b820191906000526020600020905b8154815290600101906020018083116105bf57829003601f168201915b505050505081565b601081815481106105f457600080fd5b6000918252602090912001546001600160a01b0316905081565b610616610bcd565b565b601181815481106105f457600080fd5b60125442111561064b576040516362ca2fcd60e01b815260040160405180910390fd5b346015600082825461065d9190611744565b909155505060405134815233907f74194cee4daf68c6858b41efe9729cf57988cee7f447442f39a1e2adafd4e0219060200160405180910390a2565b600681815481106105f457600080fd5b3360009081526003602052604090205460ff166106d9576040516364f5dc8560e01b815260040160405180910390fd5b6012544211156106fc576040516362ca2fcd60e01b815260040160405180910390fd5b60005b81518110156107da576002600083838151811061071e5761071e61175d565b6020908102919091018101516001600160a01b0316825281019190915260400160002054610100900460ff16610767576040516379c6621560e01b815260040160405180910390fd5b6002600083838151811061077d5761077d61175d565b6020908102919091018101516001600160a01b031682528101919091526040016000205462010000900460ff16156107c8576040516379c6621560e01b815260040160405180910390fd5b806107d281611773565b9150506106ff565b5060005b81518110156108215760008282815181106107fb576107fb61175d565b6020026020010151905061080e81610e41565b508061081981611773565b9150506107de565b506019805460ff1916600117905560405133907f440c93edea69d1cf0502a6e259d2bcaf3e0a4f16428ddd3b6f5b68081e27eea3906108619084906117d0565b60405180910390a250565b601254421161088e5760405163066a900960e21b815260040160405180910390fd5b601954610100900460ff16156108b7576040516376e5413b60e11b815260040160405180910390fd5b6108bf610fed565b6108c7611174565b6108cf611323565b6019805461ff00191661010017905560405133907f8e4581edbcde6e54b523f4d359eb0eff7308e8d3e14ff8eac7e7705b4b98a62a90600090a2565b6001600160a01b03821660009081526004602052604090205460ff166109445760405163d67d8ec560e01b815260040160405180910390fd5b60405163091f613f60e11b8152829060009081906001600160a01b0384169063123ec27e906109779087906004016117d0565b600060405180830381865afa158015610994573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109bc91908101906117e3565b9150915060008167ffffffffffffffff8111156109db576109db61158c565b604051908082528060200260200182016040528015610a04578160200160208202803683370190505b5090506000805b8451811015610a9757848181518110610a2657610a2661175d565b602002602001015115610a8557868181518110610a4557610a4561175d565b6020026020010151838381518110610a5f57610a5f61175d565b6001600160a01b039092166020928302919091019091015281610a8181611773565b9250505b80610a8f81611773565b915050610a0b565b5060405163b468aca760e01b8152309063b468aca790610abb9085906004016117d0565b600060405180830381600087803b158015610ad557600080fd5b505af1158015610ae9573d6000803e3d6000fd5b5050505050505050505050565b6000808060001985870985870292508281108382030391505080600003610b3057838281610b2657610b2661188b565b0492505050610bc6565b838110610b5e57604051631dcf306360e21b8152600481018290526024810185905260440160405180910390fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b60095460ff168015610bef57503360009081526002602052604090205460ff16155b15610c0d57604051631939666560e21b815260040160405180910390fd5b60085460135410610c3157604051631e74b6b760e11b815260040160405180910390fd5b33600090815260026020526040902054610100900460ff1615610c6757604051635fdadce760e01b815260040160405180910390fd5b601254421115610c8a576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526005602052604090205460ff16610cba57604051630be5378760e21b815260040160405180910390fd5b60408051608081018252600180825260208083018281526000848601818152346060870190815233808452600290955296822086518154945192511515620100000262ff0000199315156101000261ff00199215159290921661ffff1990961695909517179190911692909217825594519083015560108054928301815584527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67290910180546001600160a01b0319169091179055601380549192610d7e83611773565b91905055503460166000828254610d959190611744565b925050819055506000610dad34600e54600054610af6565b90506000610dc034600b54600054610af6565b90506000610dd334600d54600054610af6565b9050600081610de28486611744565b610dec9190611744565b90508060186000828254610e009190611744565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a25050505050565b6001600160a01b03811660009081526002602090815260408083208151608081018352815460ff80821615158352610100820481161515958301959095526201000090049093161515918301919091526001015460608201819052600e548354929392610eaf929190610af6565b90506000610ec68360600151600b54600054610af6565b90506000610edd8460600151600d54600054610af6565b9050600081610eec8486611744565b610ef69190611744565b90506000818660600151610f0a91906118a1565b6040519091506001600160a01b0388169082156108fc029083906000818181858888f19350505050158015610f43573d6000803e3d6000fd5b506001600160a01b0387166000908152600260205260408120805462ff00001916620100001790556014805491610f7983611773565b91905055508060176000828254610f909190611744565b9091555050606080870151604080519182526020820185905281018390526001600160a01b038916917f3c6d034538fc1be4c1c02283083c593ad4546ace8a6713cb5fb2ecb705a41446910160405180910390a250505050505050565b6014541561061657600060145460155461100791906118b4565b9050600060145467ffffffffffffffff8111156110265761102661158c565b60405190808252806020026020018201604052801561104f578160200160208202803683370190505b5090506000805b60135481101561112f576000601082815481106110755761107561175d565b60009182526020808320909101546001600160a01b0316808352600290915260409091205490915060ff62010000909104161561111c576040516001600160a01b0382169086156108fc029087906000818181858888f193505050501580156110e2573d6000803e3d6000fd5b50808484815181106110f6576110f661175d565b6001600160a01b03909216602092830291909101909101528261111881611773565b9350505b508061112781611773565b915050611056565b5060155460405133917f2114d896257ce5a58e1c18ae0d1cb1bd56f2f18c8b5a78e4541b48f40883b5af9161116791869188906118d6565b60405180910390a2505050565b6000611187601654600e54600054610af6565b9050600061119c601654600b54600054610af6565b905060006111b1601654600d54600054610af6565b6011549091506000906111c490836118b4565b9050831561120857600f546040516001600160a01b039091169085156108fc029086906000818181858888f19350505050158015611206573d6000803e3d6000fd5b505b821561124a57600c546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015611248573d6000803e3d6000fd5b505b81156112c55760005b6011548110156112c357601181815481106112705761127061175d565b60009182526020822001546040516001600160a01b039091169184156108fc02918591818181858888f193505050501580156112b0573d6000803e3d6000fd5b50806112bb81611773565b915050611253565b505b600f54600c5460405133927ff50e8e029e43d877ce362cea5cb5693fcf553b41d0bc26d03ee286b56964bafb926113159289926001600160a01b03908116928a9291169089906011908a906118fb565b60405180910390a250505050565b600060145460135461133591906118a1565b11156106165760095460609062010000900460ff168015611359575060195460ff16155b156113c05760108054806020026020016040519081016040528092919081815260200182805480156113b457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611396575b5050505050905061141e565b600680548060200260200160405190810160405280929190818152602001828054801561141657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113f8575b505050505090505b601454601354479160009161143391906118a1565b61143d90836118b4565b905060005b83518110156114b05783818151811061145d5761145d61175d565b60200260200101516001600160a01b03166108fc839081150290604051600060405180830381858888f1935050505015801561149d573d6000803e3d6000fd5b50806114a881611773565b915050611442565b50336001600160a01b03167f1a50eba3476dd09ccdbee500a30b43381479c55b92f8ea25850f819ec591a520848484604051611167939291906118d6565b600060208083528351808285015260005b8181101561151b578581018301518582016040015282016114ff565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461155357600080fd5b919050565b60006020828403121561156a57600080fd5b610bc68261153c565b60006020828403121561158557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156115cb576115cb61158c565b604052919050565b600067ffffffffffffffff8211156115ed576115ed61158c565b5060051b60200190565b600082601f83011261160857600080fd5b8135602061161d611618836115d3565b6115a2565b82815260059290921b8401810191818101908684111561163c57600080fd5b8286015b8481101561165e576116518161153c565b8352918301918301611640565b509695505050505050565b60006020828403121561167b57600080fd5b813567ffffffffffffffff81111561169257600080fd5b61169e848285016115f7565b949350505050565b600080604083850312156116b957600080fd5b6116c28361153c565b9150602083013567ffffffffffffffff8111156116de57600080fd5b6116ea858286016115f7565b9150509250929050565b600181811c9082168061170857607f821691505b60208210810361172857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156117575761175761172e565b92915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016117855761178561172e565b5060010190565b600081518084526020808501945080840160005b838110156117c55781516001600160a01b0316875295820195908201906001016117a0565b509495945050505050565b602081526000610bc6602083018461178c565b600080604083850312156117f657600080fd5b825167ffffffffffffffff81111561180d57600080fd5b8301601f8101851361181e57600080fd5b8051602061182e611618836115d3565b82815260059290921b8301810191818101908884111561184d57600080fd5b938201935b8385101561187a578451801515811461186b5760008081fd5b82529382019390820190611852565b969091015195979596505050505050565b634e487b7160e01b600052601260045260246000fd5b818103818111156117575761175761172e565b6000826118d157634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006118e9606083018661178c565b60208301949094525060400152919050565b600060e08201898352602060018060a01b03808b1682860152896040860152808916606086015287608086015260e060a0860152828754808552610100870191508860005283600020945060005b81811015611967578554841683526001958601959285019201611949565b5050809450505050508260c08301529897505050505050505056fea26469706673582212209a4c52bf904012786dbf4b13678b4ede180c0089fbc1fbf7a309a4faac35883a64736f6c63430008110033a2646970667358221220c323c9f6e4bee908d61575b74853ce0470cb418660827c82ad5d882c71e8083264736f6c63430008110033",
    "sourceMap": "142:1193:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;277:27;;;;;;;;;160:25:30;;;148:2;133:18;277:27:19;;;;;;;;829:504;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5631:32:30;;;5613:51;;5601:2;5586:18;829:504:19;5445:225:30;201:26:19;;;;;;233:37;;;;;-1:-1:-1;;;;;233:37:19;;;829:504;1015:12;;932:24;1066:11;;1091:22;;986:137;;932:24;;1015:12;1041:11;;1066;-1:-1:-1;;;;;1091:22:19;;986:137;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1194:12:19;;1245:11;;1270:22;;1138:164;;972:151;;-1:-1:-1;;;;;;1138:164:19;;;;;;;;1194:12;;1220:11;;1245;;1270:22;;;1138:164;:::i;:::-;;;;;;;;1312:12;:14;;;:12;:14;;;:::i;:::-;;;;;;829:504;;;:::o;-1:-1:-1:-;;;;;;;;:::o;196:127:30:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:255;400:2;394:9;442:6;430:19;;479:18;464:34;;500:22;;;461:62;458:88;;;526:18;;:::i;:::-;562:2;555:22;328:255;:::o;588:275::-;659:2;653:9;724:2;705:13;;-1:-1:-1;;701:27:30;689:40;;759:18;744:34;;780:22;;;741:62;738:88;;;806:18;;:::i;:::-;842:2;835:22;588:275;;-1:-1:-1;588:275:30:o;868:183::-;928:4;961:18;953:6;950:30;947:56;;;983:18;;:::i;:::-;-1:-1:-1;1028:1:30;1024:14;1040:4;1020:25;;868:183::o;1056:173::-;1124:20;;-1:-1:-1;;;;;1173:31:30;;1163:42;;1153:70;;1219:1;1216;1209:12;1153:70;1056:173;;;:::o;1234:668::-;1288:5;1341:3;1334:4;1326:6;1322:17;1318:27;1308:55;;1359:1;1356;1349:12;1308:55;1395:6;1382:20;1421:4;1445:60;1461:43;1501:2;1461:43;:::i;:::-;1445:60;:::i;:::-;1539:15;;;1625:1;1621:10;;;;1609:23;;1605:32;;;1570:12;;;;1649:15;;;1646:35;;;1677:1;1674;1667:12;1646:35;1713:2;1705:6;1701:15;1725:148;1741:6;1736:3;1733:15;1725:148;;;1807:23;1826:3;1807:23;:::i;:::-;1795:36;;1851:12;;;;1758;;1725:148;;;-1:-1:-1;1891:5:30;1234:668;-1:-1:-1;;;;;;1234:668:30:o;1907:662::-;1961:5;2014:3;2007:4;1999:6;1995:17;1991:27;1981:55;;2032:1;2029;2022:12;1981:55;2068:6;2055:20;2094:4;2118:60;2134:43;2174:2;2134:43;:::i;2118:60::-;2212:15;;;2298:1;2294:10;;;;2282:23;;2278:32;;;2243:12;;;;2322:15;;;2319:35;;;2350:1;2347;2340:12;2319:35;2386:2;2378:6;2374:15;2398:142;2414:6;2409:3;2406:15;2398:142;;;2480:17;;2468:30;;2518:12;;;;2431;;2398:142;;2574:160;2639:20;;2695:13;;2688:21;2678:32;;2668:60;;2724:1;2721;2714:12;2739:531;2782:5;2835:3;2828:4;2820:6;2816:17;2812:27;2802:55;;2853:1;2850;2843:12;2802:55;2889:6;2876:20;2915:18;2911:2;2908:26;2905:52;;;2937:18;;:::i;:::-;2981:55;3024:2;3005:13;;-1:-1:-1;;3001:27:30;3030:4;2997:38;2981:55;:::i;:::-;3061:2;3052:7;3045:19;3107:3;3100:4;3095:2;3087:6;3083:15;3079:26;3076:35;3073:55;;;3124:1;3121;3114:12;3073:55;3189:2;3182:4;3174:6;3170:17;3163:4;3154:7;3150:18;3137:55;3237:1;3212:16;;;3230:4;3208:27;3201:38;;;;3216:7;2739:531;-1:-1:-1;;;2739:531:30:o;3275:2165::-;3374:6;3427:2;3415:9;3406:7;3402:23;3398:32;3395:52;;;3443:1;3440;3433:12;3395:52;3483:9;3470:23;3512:18;3553:2;3545:6;3542:14;3539:34;;;3569:1;3566;3559:12;3539:34;3592:22;;;;3648:6;3630:16;;;3626:29;3623:49;;;3668:1;3665;3658:12;3623:49;3694:22;;:::i;:::-;3754:2;3741:16;3782:2;3772:8;3769:16;3766:36;;;3798:1;3795;3788:12;3766:36;3825:56;3873:7;3862:8;3858:2;3854:17;3825:56;:::i;:::-;3818:5;3811:71;;3928:2;3924;3920:11;3907:25;3957:2;3947:8;3944:16;3941:36;;;3973:1;3970;3963:12;3941:36;4009:56;4057:7;4046:8;4042:2;4038:17;4009:56;:::i;:::-;4004:2;3997:5;3993:14;3986:80;;4112:2;4108;4104:11;4091:25;4141:2;4131:8;4128:16;4125:36;;;4157:1;4154;4147:12;4125:36;4193:56;4241:7;4230:8;4226:2;4222:17;4193:56;:::i;:::-;4188:2;4181:5;4177:14;4170:80;;4296:2;4292;4288:11;4275:25;4325:2;4315:8;4312:16;4309:36;;;4341:1;4338;4331:12;4309:36;4377:56;4425:7;4414:8;4410:2;4406:17;4377:56;:::i;:::-;4372:2;4365:5;4361:14;4354:80;;4480:3;4476:2;4472:12;4459:26;4510:2;4500:8;4497:16;4494:36;;;4526:1;4523;4516:12;4494:36;4563:56;4611:7;4600:8;4596:2;4592:17;4563:56;:::i;:::-;4557:3;4550:5;4546:15;4539:81;;4674:3;4670:2;4666:12;4653:26;4647:3;4640:5;4636:15;4629:51;4734:3;4730:2;4726:12;4713:26;4707:3;4700:5;4696:15;4689:51;4773:29;4797:3;4793:2;4789:12;4773:29;:::i;:::-;4767:3;4760:5;4756:15;4749:54;4822:3;4857:28;4881:2;4877;4873:11;4857:28;:::i;:::-;4841:14;;;4834:52;4905:3;4940:28;4956:11;;;4940:28;:::i;:::-;4924:14;;;4917:52;4988:3;5036:11;;;5023:25;5007:14;;;5000:49;5068:3;5103:31;5122:11;;;5103:31;:::i;:::-;5087:14;;;5080:55;5154:3;5202:11;;;5189:25;5173:14;;;5166:49;5234:3;5275:11;;;5262:25;5299:16;;;5296:36;;;5328:1;5325;5318:12;5296:36;5364:45;5401:7;5390:8;5386:2;5382:17;5364:45;:::i;:::-;5348:14;;;5341:69;;;;-1:-1:-1;5352:5:30;3275:2165;-1:-1:-1;;;;;3275:2165:30:o;5992:461::-;6045:3;6083:5;6077:12;6110:6;6105:3;6098:19;6136:4;6165:2;6160:3;6156:12;6149:19;;6202:2;6195:5;6191:14;6223:1;6233:195;6247:6;6244:1;6241:13;6233:195;;;6312:13;;-1:-1:-1;;;;;6308:39:30;6296:52;;6368:12;;;;6403:15;;;;6344:1;6262:9;6233:195;;;-1:-1:-1;6444:3:30;;5992:461;-1:-1:-1;;;;;5992:461:30:o;6458:435::-;6511:3;6549:5;6543:12;6576:6;6571:3;6564:19;6602:4;6631:2;6626:3;6622:12;6615:19;;6668:2;6661:5;6657:14;6689:1;6699:169;6713:6;6710:1;6707:13;6699:169;;;6774:13;;6762:26;;6808:12;;;;6843:15;;;;6735:1;6728:9;6699:169;;6994:423;7036:3;7074:5;7068:12;7101:6;7096:3;7089:19;7126:1;7136:162;7150:6;7147:1;7144:13;7136:162;;;7212:4;7268:13;;;7264:22;;7258:29;7240:11;;;7236:20;;7229:59;7165:12;7136:162;;;7140:3;7343:1;7336:4;7327:6;7322:3;7318:16;7314:27;7307:38;7406:4;7399:2;7395:7;7390:2;7382:6;7378:15;7374:29;7369:3;7365:39;7361:50;7354:57;;;6994:423;;;;:::o;7422:2513::-;7715:6;7704:9;7697:25;7758:3;7753:2;7742:9;7738:18;7731:31;7678:4;7797:6;7791:13;7823:6;7866:2;7860:3;7849:9;7845:19;7838:31;7892:63;7950:3;7939:9;7935:19;7921:12;7892:63;:::i;:::-;7878:77;;8004:2;7996:6;7992:15;7986:22;8031:3;8027:8;8100:2;8088:9;8080:6;8076:22;8072:31;8066:3;8055:9;8051:19;8044:60;8127:52;8172:6;8156:14;8127:52;:::i;:::-;8113:66;;8228:4;8220:6;8216:17;8210:24;8188:46;;8299:2;8287:9;8279:6;8275:22;8271:31;8265:3;8254:9;8250:19;8243:60;8326:52;8371:6;8355:14;8326:52;:::i;:::-;8312:66;;8427:4;8419:6;8415:17;8409:24;8387:46;;8498:2;8486:9;8478:6;8474:22;8470:31;8464:3;8453:9;8449:19;8442:60;8525:52;8570:6;8554:14;8525:52;:::i;:::-;8511:66;;8626:3;8618:6;8614:16;8608:23;8586:45;;8650:3;8717:2;8705:9;8697:6;8693:22;8689:31;8684:2;8673:9;8669:18;8662:59;8744:52;8789:6;8773:14;8744:52;:::i;:::-;8730:66;;8833:3;8825:6;8821:16;8815:23;8805:33;;8857:3;8896:2;8891;8880:9;8876:18;8869:30;8936:3;8928:6;8924:16;8918:23;8908:33;;8960:3;8999:2;8994;8983:9;8979:18;8972:30;9051:3;9043:6;9039:16;9033:23;9011:45;;9075:3;9087:51;9134:2;9123:9;9119:18;9103:14;6968:13;6961:21;6949:34;;6898:91;9087:51;9175:15;;;9169:22;;-1:-1:-1;9210:3:30;;9222:51;9254:18;;;9169:22;6968:13;6961:21;6949:34;;6898:91;9222:51;9310:15;;;9304:22;;-1:-1:-1;9346:3:30;;9358:52;9390:19;;;9304:22;6968:13;6961:21;6949:34;;6898:91;9358:52;9452:15;;;9446:22;9426:18;;;9419:50;;;;9506:15;;;9500:22;-1:-1:-1;;;;;5741:31:30;9581:3;9566:19;;5729:44;9629:15;;9623:22;9617:3;9602:19;;9595:51;9683:16;;;9677:23;9741:22;;;9737:31;;;9731:3;9716:19;;9709:60;-1:-1:-1;9786:41:30;9741:22;9677:23;9786:41;:::i;:::-;9778:49;;;;9865:6;9858:4;9847:9;9843:20;9836:36;9881:48;9923:4;9912:9;9908:20;9900:6;-1:-1:-1;;;;;5741:31:30;5729:44;;5675:104;9881:48;7422:2513;;;;;;;:::o;9940:232::-;9979:3;10000:17;;;9997:140;;10059:10;10054:3;10050:20;10047:1;10040:31;10094:4;10091:1;10084:15;10122:4;10119:1;10112:15;9997:140;-1:-1:-1;10164:1:30;10153:13;;9940:232::o",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "deployPepperStake((address[],address[],address[],address[],uint256[],uint256,uint256,bool,bool,bool,uint256,address,uint256,string))": "808ea781",
    "projectCount()": "36fbad26",
    "protocolFee()": "b0e21e8a",
    "protocolFeeBeneficiary()": "ceb80df2"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_protocolFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_protocolFeeBeneficiary\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IPepperStake\",\"name\":\"pepperStake\",\"type\":\"address\"},{\"indexed\":false,\"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\"}],\"indexed\":false,\"internalType\":\"struct LaunchPepperStakeData\",\"name\":\"launchData\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protocolFeeBeneficiary\",\"type\":\"address\"}],\"name\":\"DeployPepperStake\",\"type\":\"event\"},{\"inputs\":[{\"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\"}],\"name\":\"deployPepperStake\",\"outputs\":[{\"internalType\":\"contract IPepperStake\",\"name\":\"pepperStake\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeBeneficiary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deployPepperStake((address[],address[],address[],address[],uint256[],uint256,uint256,bool,bool,bool,uint256,address,uint256,string))\":{\"notice\":\" Allows anyone to deploy a new PepperStake contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PepperStakeDeployer.sol\":\"PepperStakeDeployer\"},\"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/PepperStakeDeployer.sol\":{\"keccak256\":\"0xf86fbeb4d3374e5a7cf66846035ad177da6ba2720f66bf9ed2e0a0b6768d9c76\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0e9755c073cb18af0b1f80084dbcd1eb29f9f2fe33d3f579feba21161103ca67\",\"dweb:/ipfs/QmSN2v6UVXrhpzMZC6ymaTKNpwU6pVCNng1qAqchPqKm8F\"]},\"src/interfaces/IPepperStake.sol\":{\"keccak256\":\"0xc6ac6776d6271d2a2bb1818740c8e72f899427434d91af0767b3426515dfb510\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d05b3690f9aca46f1cad78a14f43dbcaf7897ed1b1ffa3665e068c96f4a928e5\",\"dweb:/ipfs/QmdD6tMj2wsspNuSbq611xxkrRtgaRBavnF533uw3y9eiN\"]},\"src/interfaces/IPepperStakeDeployer.sol\":{\"keccak256\":\"0xbe55346c40c19276efe70d3b5556f4b759c5a7f987e256efec8fa17de61d77e8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://696b1eeb54fd87caf2c9dacf3e76cc1c40fc481cf10e656609e74c806039448a\",\"dweb:/ipfs/QmSExxJyzfKDyhA9U3BRoQAkKmGxq26njoxB738gJ4uixp\"]},\"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": "_protocolFee",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "_protocolFeeBeneficiary",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [
            {
              "internalType": "contract IPepperStake",
              "name": "pepperStake",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "projectId",
              "type": "uint256",
              "indexed": false
            },
            {
              "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"
                }
              ],
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "protocolFee",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "protocolFeeBeneficiary",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "DeployPepperStake",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "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"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "deployPepperStake",
          "outputs": [
            {
              "internalType": "contract IPepperStake",
              "name": "pepperStake",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "projectCount",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "protocolFee",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "protocolFeeBeneficiary",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ]
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {},
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "deployPepperStake((address[],address[],address[],address[],uint256[],uint256,uint256,bool,bool,bool,uint256,address,uint256,string))": {
            "notice": " Allows anyone to deploy a new PepperStake contract."
          }
        },
        "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/PepperStakeDeployer.sol": "PepperStakeDeployer"
      },
      "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/PepperStakeDeployer.sol": {
        "keccak256": "0xf86fbeb4d3374e5a7cf66846035ad177da6ba2720f66bf9ed2e0a0b6768d9c76",
        "urls": [
          "bzz-raw://0e9755c073cb18af0b1f80084dbcd1eb29f9f2fe33d3f579feba21161103ca67",
          "dweb:/ipfs/QmSN2v6UVXrhpzMZC6ymaTKNpwU6pVCNng1qAqchPqKm8F"
        ],
        "license": "UNLICENSED"
      },
      "src/interfaces/IPepperStake.sol": {
        "keccak256": "0xc6ac6776d6271d2a2bb1818740c8e72f899427434d91af0767b3426515dfb510",
        "urls": [
          "bzz-raw://d05b3690f9aca46f1cad78a14f43dbcaf7897ed1b1ffa3665e068c96f4a928e5",
          "dweb:/ipfs/QmdD6tMj2wsspNuSbq611xxkrRtgaRBavnF533uw3y9eiN"
        ],
        "license": "UNLICENSED"
      },
      "src/interfaces/IPepperStakeDeployer.sol": {
        "keccak256": "0xbe55346c40c19276efe70d3b5556f4b759c5a7f987e256efec8fa17de61d77e8",
        "urls": [
          "bzz-raw://696b1eeb54fd87caf2c9dacf3e76cc1c40fc481cf10e656609e74c806039448a",
          "dweb:/ipfs/QmSExxJyzfKDyhA9U3BRoQAkKmGxq26njoxB738gJ4uixp"
        ],
        "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/PepperStakeDeployer.sol",
    "id": 27547,
    "exportedSymbols": {
      "IPepperStake": [
        27651
      ],
      "IPepperStakeDeployer": [
        27679
      ],
      "IPepperStakeOracleDelegate": [
        27694
      ],
      "LaunchPepperStakeData": [
        27730
      ],
      "PRBMath": [
        26338
      ],
      "Participant": [
        27741
      ],
      "PepperStake": [
        27480
      ],
      "PepperStakeDeployer": [
        27546
      ]
    },
    "nodeType": "SourceUnit",
    "src": "39:1297:19",
    "nodes": [
      {
        "id": 27482,
        "nodeType": "PragmaDirective",
        "src": "39:24:19",
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".13"
        ]
      },
      {
        "id": 27483,
        "nodeType": "ImportDirective",
        "src": "65:47:19",
        "absolutePath": "src/interfaces/IPepperStakeDeployer.sol",
        "file": "./interfaces/IPepperStakeDeployer.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 27547,
        "sourceUnit": 27680,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 27484,
        "nodeType": "ImportDirective",
        "src": "113:27:19",
        "absolutePath": "src/PepperStake.sol",
        "file": "./PepperStake.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 27547,
        "sourceUnit": 27481,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 27546,
        "nodeType": "ContractDefinition",
        "src": "142:1193:19",
        "nodes": [
          {
            "id": 27488,
            "nodeType": "VariableDeclaration",
            "src": "201:26:19",
            "constant": false,
            "functionSelector": "b0e21e8a",
            "mutability": "mutable",
            "name": "protocolFee",
            "nameLocation": "216:11:19",
            "scope": 27546,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 27487,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "201:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 27490,
            "nodeType": "VariableDeclaration",
            "src": "233:37:19",
            "constant": false,
            "functionSelector": "ceb80df2",
            "mutability": "mutable",
            "name": "protocolFeeBeneficiary",
            "nameLocation": "248:22:19",
            "scope": 27546,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 27489,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "233:7:19",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "public"
          },
          {
            "id": 27492,
            "nodeType": "VariableDeclaration",
            "src": "277:27:19",
            "constant": false,
            "functionSelector": "36fbad26",
            "mutability": "mutable",
            "name": "projectCount",
            "nameLocation": "292:12:19",
            "scope": 27546,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 27491,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "277:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 27512,
            "nodeType": "FunctionDefinition",
            "src": "311:194:19",
            "body": {
              "id": 27511,
              "nodeType": "Block",
              "src": "378:127:19",
              "statements": [
                {
                  "expression": {
                    "id": 27501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 27499,
                      "name": "protocolFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27488,
                      "src": "388:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 27500,
                      "name": "_protocolFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27494,
                      "src": "402:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "388:26:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 27502,
                  "nodeType": "ExpressionStatement",
                  "src": "388:26:19"
                },
                {
                  "expression": {
                    "id": 27505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 27503,
                      "name": "protocolFeeBeneficiary",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27490,
                      "src": "424:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 27504,
                      "name": "_protocolFeeBeneficiary",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27496,
                      "src": "449:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "424:48:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 27506,
                  "nodeType": "ExpressionStatement",
                  "src": "424:48:19"
                },
                {
                  "expression": {
                    "id": 27509,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 27507,
                      "name": "projectCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27492,
                      "src": "482:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "31",
                      "id": 27508,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "497:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "482:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 27510,
                  "nodeType": "ExpressionStatement",
                  "src": "482:16:19"
                }
              ]
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "parameters": {
              "id": 27497,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27494,
                  "mutability": "mutable",
                  "name": "_protocolFee",
                  "nameLocation": "331:12:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 27512,
                  "src": "323:20:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 27493,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "323:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 27496,
                  "mutability": "mutable",
                  "name": "_protocolFeeBeneficiary",
                  "nameLocation": "353:23:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 27512,
                  "src": "345:31:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 27495,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "345:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "322:55:19"
            },
            "returnParameters": {
              "id": 27498,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "378:0:19"
            },
            "scope": 27546,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 27545,
            "nodeType": "FunctionDefinition",
            "src": "829:504:19",
            "body": {
              "id": 27544,
              "nodeType": "Block",
              "src": "962:371:19",
              "statements": [
                {
                  "expression": {
                    "id": 27531,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 27522,
                      "name": "pepperStake",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27520,
                      "src": "972:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IPepperStake_$27651",
                        "typeString": "contract IPepperStake"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 27526,
                          "name": "projectCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27492,
                          "src": "1015:12:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 27527,
                          "name": "_launchData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27516,
                          "src": "1041:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          }
                        },
                        {
                          "id": 27528,
                          "name": "protocolFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27488,
                          "src": "1066:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 27529,
                          "name": "protocolFeeBeneficiary",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27490,
                          "src": "1091:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 27525,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "986:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$",
                          "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                        },
                        "typeName": {
                          "id": 27524,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 27523,
                            "name": "PepperStake",
                            "nameLocations": [
                              "990:11:19"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 27480,
                            "src": "990:11:19"
                          },
                          "referencedDeclaration": 27480,
                          "src": "990:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        }
                      },
                      "id": 27530,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "986:137:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      }
                    },
                    "src": "972:151:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IPepperStake_$27651",
                      "typeString": "contract IPepperStake"
                    }
                  },
                  "id": 27532,
                  "nodeType": "ExpressionStatement",
                  "src": "972:151:19"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 27534,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27520,
                        "src": "1169:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IPepperStake_$27651",
                          "typeString": "contract IPepperStake"
                        }
                      },
                      {
                        "id": 27535,
                        "name": "projectCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27492,
                        "src": "1194:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27536,
                        "name": "_launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27516,
                        "src": "1220:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      {
                        "id": 27537,
                        "name": "protocolFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27488,
                        "src": "1245:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 27538,
                        "name": "protocolFeeBeneficiary",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27490,
                        "src": "1270:22:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IPepperStake_$27651",
                          "typeString": "contract IPepperStake"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 27533,
                      "name": "DeployPepperStake",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27669,
                      "src": "1138:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_IPepperStake_$27651_$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (contract IPepperStake,uint256,struct LaunchPepperStakeData memory,uint256,address)"
                      }
                    },
                    "id": 27539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1138:164:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27540,
                  "nodeType": "EmitStatement",
                  "src": "1133:169:19"
                },
                {
                  "expression": {
                    "id": 27542,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "1312:14:19",
                    "subExpression": {
                      "id": 27541,
                      "name": "projectCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27492,
                      "src": "1312:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 27543,
                  "nodeType": "ExpressionStatement",
                  "src": "1312:14:19"
                }
              ]
            },
            "baseFunctions": [
              27678
            ],
            "documentation": {
              "id": 27513,
              "nodeType": "StructuredDocumentation",
              "src": "746:78:19",
              "text": "@notice \nAllows anyone to deploy a new PepperStake contract."
            },
            "functionSelector": "808ea781",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "deployPepperStake",
            "nameLocation": "838:17:19",
            "parameters": {
              "id": 27517,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27516,
                  "mutability": "mutable",
                  "name": "_launchData",
                  "nameLocation": "885:11:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 27545,
                  "src": "856:40:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                    "typeString": "struct LaunchPepperStakeData"
                  },
                  "typeName": {
                    "id": 27515,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27514,
                      "name": "LaunchPepperStakeData",
                      "nameLocations": [
                        "856:21:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27730,
                      "src": "856:21:19"
                    },
                    "referencedDeclaration": 27730,
                    "src": "856:21:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_storage_ptr",
                      "typeString": "struct LaunchPepperStakeData"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "855:42:19"
            },
            "returnParameters": {
              "id": 27521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27520,
                  "mutability": "mutable",
                  "name": "pepperStake",
                  "nameLocation": "945:11:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 27545,
                  "src": "932:24:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IPepperStake_$27651",
                    "typeString": "contract IPepperStake"
                  },
                  "typeName": {
                    "id": 27519,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27518,
                      "name": "IPepperStake",
                      "nameLocations": [
                        "932:12:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27651,
                      "src": "932:12:19"
                    },
                    "referencedDeclaration": 27651,
                    "src": "932:12:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IPepperStake_$27651",
                      "typeString": "contract IPepperStake"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "931:26:19"
            },
            "scope": 27546,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 27485,
              "name": "IPepperStakeDeployer",
              "nameLocations": [
                "174:20:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 27679,
              "src": "174:20:19"
            },
            "id": 27486,
            "nodeType": "InheritanceSpecifier",
            "src": "174:20:19"
          }
        ],
        "canonicalName": "PepperStakeDeployer",
        "contractDependencies": [
          27480
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          27546,
          27679
        ],
        "name": "PepperStakeDeployer",
        "nameLocation": "151:19:19",
        "scope": 27547,
        "usedErrors": []
      }
    ],
    "license": "UNLICENSED"
  },
  "id": 19
}