Overview
ETH Balance
More Info
ContractCreator
Multichain Info
Latest 4 from a total of 4 transactions
Latest 1 internal transaction
| Parent Transaction Hash | Block | From | To | Amount | ||
|---|---|---|---|---|---|---|
| 35150197 | 172 days ago | Contract Creation | 0 ETH |
Contract Source Code (Solidity Standard Json-Input format)
Contract ABI
API[{"inputs":[{"internalType":"contract IJBSuckerRegistry","name":"suckerRegistry","type":"address"},{"internalType":"contract IJB721TiersHookDeployer","name":"hookDeployer","type":"address"},{"internalType":"contract IJBPermissions","name":"permissions","type":"address"},{"internalType":"contract IJBProjects","name":"projects","type":"address"},{"internalType":"address","name":"trustedForwarder","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"JBOmnichainDeployer_InvalidHook","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"permissionId","type":"uint256"}],"name":"JBPermissioned_Unauthorized","type":"error"},{"inputs":[],"name":"HOOK_DEPLOYER","outputs":[{"internalType":"contract IJB721TiersHookDeployer","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMISSIONS","outputs":[{"internalType":"contract IJBPermissions","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROJECTS","outputs":[{"internalType":"contract IJBProjects","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUCKER_REGISTRY","outputs":[{"internalType":"contract IJBSuckerRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"terminal","type":"address"},{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"rulesetId","type":"uint256"},{"internalType":"uint256","name":"cashOutCount","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint32","name":"currency","type":"uint32"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct JBTokenAmount","name":"surplus","type":"tuple"},{"internalType":"bool","name":"useTotalSurplus","type":"bool"},{"internalType":"uint256","name":"cashOutTaxRate","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct JBBeforeCashOutRecordedContext","name":"context","type":"tuple"}],"name":"beforeCashOutRecordedWith","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"components":[{"internalType":"contract IJBCashOutHook","name":"hook","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct JBCashOutHookSpecification[]","name":"hookSpecifications","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"terminal","type":"address"},{"internalType":"address","name":"payer","type":"address"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint32","name":"currency","type":"uint32"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct JBTokenAmount","name":"amount","type":"tuple"},{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"rulesetId","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"reservedPercent","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct JBBeforePayRecordedContext","name":"context","type":"tuple"}],"name":"beforePayRecordedWith","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"components":[{"internalType":"contract IJBPayHook","name":"hook","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct JBPayHookSpecification[]","name":"hookSpecifications","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"rulesetId","type":"uint256"}],"name":"dataHookOf","outputs":[{"internalType":"bool","name":"useDataHookForPay","type":"bool"},{"internalType":"bool","name":"useDataHookForCashout","type":"bool"},{"internalType":"contract IJBRulesetDataHook","name":"dataHook","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"components":[{"components":[{"internalType":"contract IJBSuckerDeployer","name":"deployer","type":"address"},{"components":[{"internalType":"address","name":"localToken","type":"address"},{"internalType":"uint32","name":"minGas","type":"uint32"},{"internalType":"address","name":"remoteToken","type":"address"},{"internalType":"uint256","name":"minBridgeAmount","type":"uint256"}],"internalType":"struct JBTokenMapping[]","name":"mappings","type":"tuple[]"}],"internalType":"struct JBSuckerDeployerConfig[]","name":"deployerConfigurations","type":"tuple[]"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct JBSuckerDeploymentConfig","name":"suckerDeploymentConfiguration","type":"tuple"}],"name":"deploySuckersFor","outputs":[{"internalType":"address[]","name":"suckers","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"components":[{"internalType":"uint48","name":"cycleNumber","type":"uint48"},{"internalType":"uint48","name":"id","type":"uint48"},{"internalType":"uint48","name":"basedOnId","type":"uint48"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"uint32","name":"duration","type":"uint32"},{"internalType":"uint112","name":"weight","type":"uint112"},{"internalType":"uint32","name":"weightCutPercent","type":"uint32"},{"internalType":"contract IJBRulesetApprovalHook","name":"approvalHook","type":"address"},{"internalType":"uint256","name":"metadata","type":"uint256"}],"internalType":"struct JBRuleset","name":"ruleset","type":"tuple"},{"internalType":"address","name":"addr","type":"address"}],"name":"hasMintPermissionFor","outputs":[{"internalType":"bool","name":"flag","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"forwarder","type":"address"}],"name":"isTrustedForwarder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseUri","type":"string"},{"internalType":"contract IJB721TokenUriResolver","name":"tokenUriResolver","type":"address"},{"internalType":"string","name":"contractUri","type":"string"},{"components":[{"components":[{"internalType":"uint104","name":"price","type":"uint104"},{"internalType":"uint32","name":"initialSupply","type":"uint32"},{"internalType":"uint32","name":"votingUnits","type":"uint32"},{"internalType":"uint16","name":"reserveFrequency","type":"uint16"},{"internalType":"address","name":"reserveBeneficiary","type":"address"},{"internalType":"bytes32","name":"encodedIPFSUri","type":"bytes32"},{"internalType":"uint24","name":"category","type":"uint24"},{"internalType":"uint8","name":"discountPercent","type":"uint8"},{"internalType":"bool","name":"allowOwnerMint","type":"bool"},{"internalType":"bool","name":"useReserveBeneficiaryAsDefault","type":"bool"},{"internalType":"bool","name":"transfersPausable","type":"bool"},{"internalType":"bool","name":"useVotingUnits","type":"bool"},{"internalType":"bool","name":"cannotBeRemoved","type":"bool"},{"internalType":"bool","name":"cannotIncreaseDiscountPercent","type":"bool"}],"internalType":"struct JB721TierConfig[]","name":"tiers","type":"tuple[]"},{"internalType":"uint32","name":"currency","type":"uint32"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"contract IJBPrices","name":"prices","type":"address"}],"internalType":"struct JB721InitTiersConfig","name":"tiersConfig","type":"tuple"},{"internalType":"address","name":"reserveBeneficiary","type":"address"},{"components":[{"internalType":"bool","name":"noNewTiersWithReserves","type":"bool"},{"internalType":"bool","name":"noNewTiersWithVotes","type":"bool"},{"internalType":"bool","name":"noNewTiersWithOwnerMinting","type":"bool"},{"internalType":"bool","name":"preventOverspending","type":"bool"}],"internalType":"struct JB721TiersHookFlags","name":"flags","type":"tuple"}],"internalType":"struct JBDeploy721TiersHookConfig","name":"deployTiersHookConfig","type":"tuple"},{"components":[{"internalType":"string","name":"projectUri","type":"string"},{"components":[{"internalType":"uint48","name":"mustStartAtOrAfter","type":"uint48"},{"internalType":"uint32","name":"duration","type":"uint32"},{"internalType":"uint112","name":"weight","type":"uint112"},{"internalType":"uint32","name":"weightCutPercent","type":"uint32"},{"internalType":"contract IJBRulesetApprovalHook","name":"approvalHook","type":"address"},{"components":[{"internalType":"uint16","name":"reservedPercent","type":"uint16"},{"internalType":"uint16","name":"cashOutTaxRate","type":"uint16"},{"internalType":"uint32","name":"baseCurrency","type":"uint32"},{"internalType":"bool","name":"pausePay","type":"bool"},{"internalType":"bool","name":"pauseCreditTransfers","type":"bool"},{"internalType":"bool","name":"allowOwnerMinting","type":"bool"},{"internalType":"bool","name":"allowTerminalMigration","type":"bool"},{"internalType":"bool","name":"allowSetTerminals","type":"bool"},{"internalType":"bool","name":"allowSetController","type":"bool"},{"internalType":"bool","name":"allowAddAccountingContext","type":"bool"},{"internalType":"bool","name":"allowAddPriceFeed","type":"bool"},{"internalType":"bool","name":"ownerMustSendPayouts","type":"bool"},{"internalType":"bool","name":"holdFees","type":"bool"},{"internalType":"bool","name":"useTotalSurplusForCashOuts","type":"bool"},{"internalType":"bool","name":"useDataHookForCashOut","type":"bool"},{"internalType":"uint16","name":"metadata","type":"uint16"}],"internalType":"struct JBPayDataHookRulesetMetadata","name":"metadata","type":"tuple"},{"components":[{"internalType":"uint256","name":"groupId","type":"uint256"},{"components":[{"internalType":"uint32","name":"percent","type":"uint32"},{"internalType":"uint64","name":"projectId","type":"uint64"},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"bool","name":"preferAddToBalance","type":"bool"},{"internalType":"uint48","name":"lockedUntil","type":"uint48"},{"internalType":"contract IJBSplitHook","name":"hook","type":"address"}],"internalType":"struct JBSplit[]","name":"splits","type":"tuple[]"}],"internalType":"struct JBSplitGroup[]","name":"splitGroups","type":"tuple[]"},{"components":[{"internalType":"address","name":"terminal","type":"address"},{"internalType":"address","name":"token","type":"address"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"payoutLimits","type":"tuple[]"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"surplusAllowances","type":"tuple[]"}],"internalType":"struct JBFundAccessLimitGroup[]","name":"fundAccessLimitGroups","type":"tuple[]"}],"internalType":"struct JBPayDataHookRulesetConfig[]","name":"rulesetConfigurations","type":"tuple[]"},{"components":[{"internalType":"contract IJBTerminal","name":"terminal","type":"address"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBAccountingContext[]","name":"accountingContextsToAccept","type":"tuple[]"}],"internalType":"struct JBTerminalConfig[]","name":"terminalConfigurations","type":"tuple[]"},{"internalType":"string","name":"memo","type":"string"}],"internalType":"struct JBLaunchProjectConfig","name":"launchProjectConfig","type":"tuple"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"components":[{"components":[{"internalType":"contract IJBSuckerDeployer","name":"deployer","type":"address"},{"components":[{"internalType":"address","name":"localToken","type":"address"},{"internalType":"uint32","name":"minGas","type":"uint32"},{"internalType":"address","name":"remoteToken","type":"address"},{"internalType":"uint256","name":"minBridgeAmount","type":"uint256"}],"internalType":"struct JBTokenMapping[]","name":"mappings","type":"tuple[]"}],"internalType":"struct JBSuckerDeployerConfig[]","name":"deployerConfigurations","type":"tuple[]"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct JBSuckerDeploymentConfig","name":"suckerDeploymentConfiguration","type":"tuple"},{"internalType":"contract IJBController","name":"controller","type":"address"}],"name":"launch721ProjectFor","outputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"contract IJB721TiersHook","name":"hook","type":"address"},{"internalType":"address[]","name":"suckers","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseUri","type":"string"},{"internalType":"contract IJB721TokenUriResolver","name":"tokenUriResolver","type":"address"},{"internalType":"string","name":"contractUri","type":"string"},{"components":[{"components":[{"internalType":"uint104","name":"price","type":"uint104"},{"internalType":"uint32","name":"initialSupply","type":"uint32"},{"internalType":"uint32","name":"votingUnits","type":"uint32"},{"internalType":"uint16","name":"reserveFrequency","type":"uint16"},{"internalType":"address","name":"reserveBeneficiary","type":"address"},{"internalType":"bytes32","name":"encodedIPFSUri","type":"bytes32"},{"internalType":"uint24","name":"category","type":"uint24"},{"internalType":"uint8","name":"discountPercent","type":"uint8"},{"internalType":"bool","name":"allowOwnerMint","type":"bool"},{"internalType":"bool","name":"useReserveBeneficiaryAsDefault","type":"bool"},{"internalType":"bool","name":"transfersPausable","type":"bool"},{"internalType":"bool","name":"useVotingUnits","type":"bool"},{"internalType":"bool","name":"cannotBeRemoved","type":"bool"},{"internalType":"bool","name":"cannotIncreaseDiscountPercent","type":"bool"}],"internalType":"struct JB721TierConfig[]","name":"tiers","type":"tuple[]"},{"internalType":"uint32","name":"currency","type":"uint32"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"contract IJBPrices","name":"prices","type":"address"}],"internalType":"struct JB721InitTiersConfig","name":"tiersConfig","type":"tuple"},{"internalType":"address","name":"reserveBeneficiary","type":"address"},{"components":[{"internalType":"bool","name":"noNewTiersWithReserves","type":"bool"},{"internalType":"bool","name":"noNewTiersWithVotes","type":"bool"},{"internalType":"bool","name":"noNewTiersWithOwnerMinting","type":"bool"},{"internalType":"bool","name":"preventOverspending","type":"bool"}],"internalType":"struct JB721TiersHookFlags","name":"flags","type":"tuple"}],"internalType":"struct JBDeploy721TiersHookConfig","name":"deployTiersHookConfig","type":"tuple"},{"components":[{"internalType":"uint56","name":"projectId","type":"uint56"},{"components":[{"internalType":"uint48","name":"mustStartAtOrAfter","type":"uint48"},{"internalType":"uint32","name":"duration","type":"uint32"},{"internalType":"uint112","name":"weight","type":"uint112"},{"internalType":"uint32","name":"weightCutPercent","type":"uint32"},{"internalType":"contract IJBRulesetApprovalHook","name":"approvalHook","type":"address"},{"components":[{"internalType":"uint16","name":"reservedPercent","type":"uint16"},{"internalType":"uint16","name":"cashOutTaxRate","type":"uint16"},{"internalType":"uint32","name":"baseCurrency","type":"uint32"},{"internalType":"bool","name":"pausePay","type":"bool"},{"internalType":"bool","name":"pauseCreditTransfers","type":"bool"},{"internalType":"bool","name":"allowOwnerMinting","type":"bool"},{"internalType":"bool","name":"allowTerminalMigration","type":"bool"},{"internalType":"bool","name":"allowSetTerminals","type":"bool"},{"internalType":"bool","name":"allowSetController","type":"bool"},{"internalType":"bool","name":"allowAddAccountingContext","type":"bool"},{"internalType":"bool","name":"allowAddPriceFeed","type":"bool"},{"internalType":"bool","name":"ownerMustSendPayouts","type":"bool"},{"internalType":"bool","name":"holdFees","type":"bool"},{"internalType":"bool","name":"useTotalSurplusForCashOuts","type":"bool"},{"internalType":"bool","name":"useDataHookForCashOut","type":"bool"},{"internalType":"uint16","name":"metadata","type":"uint16"}],"internalType":"struct JBPayDataHookRulesetMetadata","name":"metadata","type":"tuple"},{"components":[{"internalType":"uint256","name":"groupId","type":"uint256"},{"components":[{"internalType":"uint32","name":"percent","type":"uint32"},{"internalType":"uint64","name":"projectId","type":"uint64"},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"bool","name":"preferAddToBalance","type":"bool"},{"internalType":"uint48","name":"lockedUntil","type":"uint48"},{"internalType":"contract IJBSplitHook","name":"hook","type":"address"}],"internalType":"struct JBSplit[]","name":"splits","type":"tuple[]"}],"internalType":"struct JBSplitGroup[]","name":"splitGroups","type":"tuple[]"},{"components":[{"internalType":"address","name":"terminal","type":"address"},{"internalType":"address","name":"token","type":"address"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"payoutLimits","type":"tuple[]"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"surplusAllowances","type":"tuple[]"}],"internalType":"struct JBFundAccessLimitGroup[]","name":"fundAccessLimitGroups","type":"tuple[]"}],"internalType":"struct JBPayDataHookRulesetConfig[]","name":"rulesetConfigurations","type":"tuple[]"},{"components":[{"internalType":"contract IJBTerminal","name":"terminal","type":"address"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBAccountingContext[]","name":"accountingContextsToAccept","type":"tuple[]"}],"internalType":"struct JBTerminalConfig[]","name":"terminalConfigurations","type":"tuple[]"},{"internalType":"string","name":"memo","type":"string"}],"internalType":"struct JBLaunchRulesetsConfig","name":"launchRulesetsConfig","type":"tuple"},{"internalType":"contract IJBController","name":"controller","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"launch721RulesetsFor","outputs":[{"internalType":"uint256","name":"rulesetId","type":"uint256"},{"internalType":"contract IJB721TiersHook","name":"hook","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"projectUri","type":"string"},{"components":[{"internalType":"uint48","name":"mustStartAtOrAfter","type":"uint48"},{"internalType":"uint32","name":"duration","type":"uint32"},{"internalType":"uint112","name":"weight","type":"uint112"},{"internalType":"uint32","name":"weightCutPercent","type":"uint32"},{"internalType":"contract IJBRulesetApprovalHook","name":"approvalHook","type":"address"},{"components":[{"internalType":"uint16","name":"reservedPercent","type":"uint16"},{"internalType":"uint16","name":"cashOutTaxRate","type":"uint16"},{"internalType":"uint32","name":"baseCurrency","type":"uint32"},{"internalType":"bool","name":"pausePay","type":"bool"},{"internalType":"bool","name":"pauseCreditTransfers","type":"bool"},{"internalType":"bool","name":"allowOwnerMinting","type":"bool"},{"internalType":"bool","name":"allowSetCustomToken","type":"bool"},{"internalType":"bool","name":"allowTerminalMigration","type":"bool"},{"internalType":"bool","name":"allowSetTerminals","type":"bool"},{"internalType":"bool","name":"allowSetController","type":"bool"},{"internalType":"bool","name":"allowAddAccountingContext","type":"bool"},{"internalType":"bool","name":"allowAddPriceFeed","type":"bool"},{"internalType":"bool","name":"ownerMustSendPayouts","type":"bool"},{"internalType":"bool","name":"holdFees","type":"bool"},{"internalType":"bool","name":"useTotalSurplusForCashOuts","type":"bool"},{"internalType":"bool","name":"useDataHookForPay","type":"bool"},{"internalType":"bool","name":"useDataHookForCashOut","type":"bool"},{"internalType":"address","name":"dataHook","type":"address"},{"internalType":"uint16","name":"metadata","type":"uint16"}],"internalType":"struct JBRulesetMetadata","name":"metadata","type":"tuple"},{"components":[{"internalType":"uint256","name":"groupId","type":"uint256"},{"components":[{"internalType":"uint32","name":"percent","type":"uint32"},{"internalType":"uint64","name":"projectId","type":"uint64"},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"bool","name":"preferAddToBalance","type":"bool"},{"internalType":"uint48","name":"lockedUntil","type":"uint48"},{"internalType":"contract IJBSplitHook","name":"hook","type":"address"}],"internalType":"struct JBSplit[]","name":"splits","type":"tuple[]"}],"internalType":"struct JBSplitGroup[]","name":"splitGroups","type":"tuple[]"},{"components":[{"internalType":"address","name":"terminal","type":"address"},{"internalType":"address","name":"token","type":"address"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"payoutLimits","type":"tuple[]"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"surplusAllowances","type":"tuple[]"}],"internalType":"struct JBFundAccessLimitGroup[]","name":"fundAccessLimitGroups","type":"tuple[]"}],"internalType":"struct JBRulesetConfig[]","name":"rulesetConfigurations","type":"tuple[]"},{"components":[{"internalType":"contract IJBTerminal","name":"terminal","type":"address"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBAccountingContext[]","name":"accountingContextsToAccept","type":"tuple[]"}],"internalType":"struct JBTerminalConfig[]","name":"terminalConfigurations","type":"tuple[]"},{"internalType":"string","name":"memo","type":"string"},{"components":[{"components":[{"internalType":"contract IJBSuckerDeployer","name":"deployer","type":"address"},{"components":[{"internalType":"address","name":"localToken","type":"address"},{"internalType":"uint32","name":"minGas","type":"uint32"},{"internalType":"address","name":"remoteToken","type":"address"},{"internalType":"uint256","name":"minBridgeAmount","type":"uint256"}],"internalType":"struct JBTokenMapping[]","name":"mappings","type":"tuple[]"}],"internalType":"struct JBSuckerDeployerConfig[]","name":"deployerConfigurations","type":"tuple[]"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct JBSuckerDeploymentConfig","name":"suckerDeploymentConfiguration","type":"tuple"},{"internalType":"contract IJBController","name":"controller","type":"address"}],"name":"launchProjectFor","outputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"address[]","name":"suckers","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"components":[{"internalType":"uint48","name":"mustStartAtOrAfter","type":"uint48"},{"internalType":"uint32","name":"duration","type":"uint32"},{"internalType":"uint112","name":"weight","type":"uint112"},{"internalType":"uint32","name":"weightCutPercent","type":"uint32"},{"internalType":"contract IJBRulesetApprovalHook","name":"approvalHook","type":"address"},{"components":[{"internalType":"uint16","name":"reservedPercent","type":"uint16"},{"internalType":"uint16","name":"cashOutTaxRate","type":"uint16"},{"internalType":"uint32","name":"baseCurrency","type":"uint32"},{"internalType":"bool","name":"pausePay","type":"bool"},{"internalType":"bool","name":"pauseCreditTransfers","type":"bool"},{"internalType":"bool","name":"allowOwnerMinting","type":"bool"},{"internalType":"bool","name":"allowSetCustomToken","type":"bool"},{"internalType":"bool","name":"allowTerminalMigration","type":"bool"},{"internalType":"bool","name":"allowSetTerminals","type":"bool"},{"internalType":"bool","name":"allowSetController","type":"bool"},{"internalType":"bool","name":"allowAddAccountingContext","type":"bool"},{"internalType":"bool","name":"allowAddPriceFeed","type":"bool"},{"internalType":"bool","name":"ownerMustSendPayouts","type":"bool"},{"internalType":"bool","name":"holdFees","type":"bool"},{"internalType":"bool","name":"useTotalSurplusForCashOuts","type":"bool"},{"internalType":"bool","name":"useDataHookForPay","type":"bool"},{"internalType":"bool","name":"useDataHookForCashOut","type":"bool"},{"internalType":"address","name":"dataHook","type":"address"},{"internalType":"uint16","name":"metadata","type":"uint16"}],"internalType":"struct JBRulesetMetadata","name":"metadata","type":"tuple"},{"components":[{"internalType":"uint256","name":"groupId","type":"uint256"},{"components":[{"internalType":"uint32","name":"percent","type":"uint32"},{"internalType":"uint64","name":"projectId","type":"uint64"},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"bool","name":"preferAddToBalance","type":"bool"},{"internalType":"uint48","name":"lockedUntil","type":"uint48"},{"internalType":"contract IJBSplitHook","name":"hook","type":"address"}],"internalType":"struct JBSplit[]","name":"splits","type":"tuple[]"}],"internalType":"struct JBSplitGroup[]","name":"splitGroups","type":"tuple[]"},{"components":[{"internalType":"address","name":"terminal","type":"address"},{"internalType":"address","name":"token","type":"address"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"payoutLimits","type":"tuple[]"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"surplusAllowances","type":"tuple[]"}],"internalType":"struct JBFundAccessLimitGroup[]","name":"fundAccessLimitGroups","type":"tuple[]"}],"internalType":"struct JBRulesetConfig[]","name":"rulesetConfigurations","type":"tuple[]"},{"components":[{"internalType":"contract IJBTerminal","name":"terminal","type":"address"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBAccountingContext[]","name":"accountingContextsToAccept","type":"tuple[]"}],"internalType":"struct JBTerminalConfig[]","name":"terminalConfigurations","type":"tuple[]"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"contract IJBController","name":"controller","type":"address"}],"name":"launchRulesetsFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseUri","type":"string"},{"internalType":"contract IJB721TokenUriResolver","name":"tokenUriResolver","type":"address"},{"internalType":"string","name":"contractUri","type":"string"},{"components":[{"components":[{"internalType":"uint104","name":"price","type":"uint104"},{"internalType":"uint32","name":"initialSupply","type":"uint32"},{"internalType":"uint32","name":"votingUnits","type":"uint32"},{"internalType":"uint16","name":"reserveFrequency","type":"uint16"},{"internalType":"address","name":"reserveBeneficiary","type":"address"},{"internalType":"bytes32","name":"encodedIPFSUri","type":"bytes32"},{"internalType":"uint24","name":"category","type":"uint24"},{"internalType":"uint8","name":"discountPercent","type":"uint8"},{"internalType":"bool","name":"allowOwnerMint","type":"bool"},{"internalType":"bool","name":"useReserveBeneficiaryAsDefault","type":"bool"},{"internalType":"bool","name":"transfersPausable","type":"bool"},{"internalType":"bool","name":"useVotingUnits","type":"bool"},{"internalType":"bool","name":"cannotBeRemoved","type":"bool"},{"internalType":"bool","name":"cannotIncreaseDiscountPercent","type":"bool"}],"internalType":"struct JB721TierConfig[]","name":"tiers","type":"tuple[]"},{"internalType":"uint32","name":"currency","type":"uint32"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"contract IJBPrices","name":"prices","type":"address"}],"internalType":"struct JB721InitTiersConfig","name":"tiersConfig","type":"tuple"},{"internalType":"address","name":"reserveBeneficiary","type":"address"},{"components":[{"internalType":"bool","name":"noNewTiersWithReserves","type":"bool"},{"internalType":"bool","name":"noNewTiersWithVotes","type":"bool"},{"internalType":"bool","name":"noNewTiersWithOwnerMinting","type":"bool"},{"internalType":"bool","name":"preventOverspending","type":"bool"}],"internalType":"struct JB721TiersHookFlags","name":"flags","type":"tuple"}],"internalType":"struct JBDeploy721TiersHookConfig","name":"deployTiersHookConfig","type":"tuple"},{"components":[{"internalType":"uint56","name":"projectId","type":"uint56"},{"components":[{"internalType":"uint48","name":"mustStartAtOrAfter","type":"uint48"},{"internalType":"uint32","name":"duration","type":"uint32"},{"internalType":"uint112","name":"weight","type":"uint112"},{"internalType":"uint32","name":"weightCutPercent","type":"uint32"},{"internalType":"contract IJBRulesetApprovalHook","name":"approvalHook","type":"address"},{"components":[{"internalType":"uint16","name":"reservedPercent","type":"uint16"},{"internalType":"uint16","name":"cashOutTaxRate","type":"uint16"},{"internalType":"uint32","name":"baseCurrency","type":"uint32"},{"internalType":"bool","name":"pausePay","type":"bool"},{"internalType":"bool","name":"pauseCreditTransfers","type":"bool"},{"internalType":"bool","name":"allowOwnerMinting","type":"bool"},{"internalType":"bool","name":"allowTerminalMigration","type":"bool"},{"internalType":"bool","name":"allowSetTerminals","type":"bool"},{"internalType":"bool","name":"allowSetController","type":"bool"},{"internalType":"bool","name":"allowAddAccountingContext","type":"bool"},{"internalType":"bool","name":"allowAddPriceFeed","type":"bool"},{"internalType":"bool","name":"ownerMustSendPayouts","type":"bool"},{"internalType":"bool","name":"holdFees","type":"bool"},{"internalType":"bool","name":"useTotalSurplusForCashOuts","type":"bool"},{"internalType":"bool","name":"useDataHookForCashOut","type":"bool"},{"internalType":"uint16","name":"metadata","type":"uint16"}],"internalType":"struct JBPayDataHookRulesetMetadata","name":"metadata","type":"tuple"},{"components":[{"internalType":"uint256","name":"groupId","type":"uint256"},{"components":[{"internalType":"uint32","name":"percent","type":"uint32"},{"internalType":"uint64","name":"projectId","type":"uint64"},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"bool","name":"preferAddToBalance","type":"bool"},{"internalType":"uint48","name":"lockedUntil","type":"uint48"},{"internalType":"contract IJBSplitHook","name":"hook","type":"address"}],"internalType":"struct JBSplit[]","name":"splits","type":"tuple[]"}],"internalType":"struct JBSplitGroup[]","name":"splitGroups","type":"tuple[]"},{"components":[{"internalType":"address","name":"terminal","type":"address"},{"internalType":"address","name":"token","type":"address"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"payoutLimits","type":"tuple[]"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"surplusAllowances","type":"tuple[]"}],"internalType":"struct JBFundAccessLimitGroup[]","name":"fundAccessLimitGroups","type":"tuple[]"}],"internalType":"struct JBPayDataHookRulesetConfig[]","name":"rulesetConfigurations","type":"tuple[]"},{"internalType":"string","name":"memo","type":"string"}],"internalType":"struct JBQueueRulesetsConfig","name":"queueRulesetsConfig","type":"tuple"},{"internalType":"contract IJBController","name":"controller","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"queue721RulesetsOf","outputs":[{"internalType":"uint256","name":"rulesetId","type":"uint256"},{"internalType":"contract IJB721TiersHook","name":"hook","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"components":[{"internalType":"uint48","name":"mustStartAtOrAfter","type":"uint48"},{"internalType":"uint32","name":"duration","type":"uint32"},{"internalType":"uint112","name":"weight","type":"uint112"},{"internalType":"uint32","name":"weightCutPercent","type":"uint32"},{"internalType":"contract IJBRulesetApprovalHook","name":"approvalHook","type":"address"},{"components":[{"internalType":"uint16","name":"reservedPercent","type":"uint16"},{"internalType":"uint16","name":"cashOutTaxRate","type":"uint16"},{"internalType":"uint32","name":"baseCurrency","type":"uint32"},{"internalType":"bool","name":"pausePay","type":"bool"},{"internalType":"bool","name":"pauseCreditTransfers","type":"bool"},{"internalType":"bool","name":"allowOwnerMinting","type":"bool"},{"internalType":"bool","name":"allowSetCustomToken","type":"bool"},{"internalType":"bool","name":"allowTerminalMigration","type":"bool"},{"internalType":"bool","name":"allowSetTerminals","type":"bool"},{"internalType":"bool","name":"allowSetController","type":"bool"},{"internalType":"bool","name":"allowAddAccountingContext","type":"bool"},{"internalType":"bool","name":"allowAddPriceFeed","type":"bool"},{"internalType":"bool","name":"ownerMustSendPayouts","type":"bool"},{"internalType":"bool","name":"holdFees","type":"bool"},{"internalType":"bool","name":"useTotalSurplusForCashOuts","type":"bool"},{"internalType":"bool","name":"useDataHookForPay","type":"bool"},{"internalType":"bool","name":"useDataHookForCashOut","type":"bool"},{"internalType":"address","name":"dataHook","type":"address"},{"internalType":"uint16","name":"metadata","type":"uint16"}],"internalType":"struct JBRulesetMetadata","name":"metadata","type":"tuple"},{"components":[{"internalType":"uint256","name":"groupId","type":"uint256"},{"components":[{"internalType":"uint32","name":"percent","type":"uint32"},{"internalType":"uint64","name":"projectId","type":"uint64"},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"bool","name":"preferAddToBalance","type":"bool"},{"internalType":"uint48","name":"lockedUntil","type":"uint48"},{"internalType":"contract IJBSplitHook","name":"hook","type":"address"}],"internalType":"struct JBSplit[]","name":"splits","type":"tuple[]"}],"internalType":"struct JBSplitGroup[]","name":"splitGroups","type":"tuple[]"},{"components":[{"internalType":"address","name":"terminal","type":"address"},{"internalType":"address","name":"token","type":"address"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"payoutLimits","type":"tuple[]"},{"components":[{"internalType":"uint224","name":"amount","type":"uint224"},{"internalType":"uint32","name":"currency","type":"uint32"}],"internalType":"struct JBCurrencyAmount[]","name":"surplusAllowances","type":"tuple[]"}],"internalType":"struct JBFundAccessLimitGroup[]","name":"fundAccessLimitGroups","type":"tuple[]"}],"internalType":"struct JBRulesetConfig[]","name":"rulesetConfigurations","type":"tuple[]"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"contract IJBController","name":"controller","type":"address"}],"name":"queueRulesetsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trustedForwarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
61012060405234801562000011575f80fd5b5060405162005a7e38038062005a7e83398101604081905262000034916200015f565b6001600160a01b0381811660805283811660a05282811660c05285811661010052841660e0526040805160018082528183019092525f9160208281019080368337019050509050601c815f81518110620000925762000092620001db565b602002602001019060ff16908160ff16815250505f6040518060600160405280610100516001600160a01b031681526020015f6001600160401b0316815260200183815250905060a0516001600160a01b031663449f24a430836040518363ffffffff1660e01b81526004016200010b929190620001ef565b5f604051808303815f87803b15801562000123575f80fd5b505af115801562000136573d5f803e3d5ffd5b50505050505050505050506200027a565b6001600160a01b03811681146200015c575f80fd5b50565b5f805f805f60a0868803121562000174575f80fd5b8551620001818162000147565b6020870151909550620001948162000147565b6040870151909450620001a78162000147565b6060870151909350620001ba8162000147565b6080870151909250620001cd8162000147565b809150509295509295909350565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b03838116825260406020808401829052845190921681840152838201516001600160401b0316606080850191909152908401516080840191909152805160a084018190525f929182019190839060c08601905b808310156200026e57845160ff16825293830193600192909201919083019062000249565b50979650505050505050565b60805160a05160c05160e05161010051615725620003595f395f818161042301528181610e7e015281816114e001528181611716015281816119b10152611bbf01525f81816103fc0152818161088801528181610c49015261119e01525f818161021c015281816105fe015281816106a2015281816107d101528181610a3001528181610ace01528181610b9a0152818161100a0152818161107501528181611101015281816116a3015281816118520152611b3d01525f818161048b0152611e8f01525f8181610286015281816102fa015261276d01526157255ff3fe608060405234801561000f575f80fd5b5060043610610149575f3560e01c80637da0a877116100c7578063b5d255331161007d578063d76bcf1711610063578063d76bcf1714610465578063f434c91414610486578063fb82b1b0146104ad575f80fd5b8063b5d255331461041e578063b78edb6614610445575f80fd5b806393547ad8116100ad57806393547ad81461033f57806399f6d77f146103e4578063abf8c5c8146103f7575f80fd5b80637da0a877146102f85780638cc358461461031e575f80fd5b8063293c49991161011c578063572b6c0511610102578063572b6c051461027657806360cdd0a7146102c357806370347755146102e5575f80fd5b8063293c4999146102175780634febc03e14610263575f80fd5b806301ffc9a71461014d578063063ca413146101755780631258fa9014610196578063150b7a02146101d3575b5f80fd5b61016061015b3660046127d1565b6104d0565b60405190151581526020015b60405180910390f35b6101886101833660046128ca565b6105b4565b60405190815260200161016c565b6101a96101a4366004612f76565b6107ca565b6040805192835273ffffffffffffffffffffffffffffffffffffffff90911660208301520161016c565b6101e66101e1366004612ffc565b610a17565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161016c565b61023e7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016c565b61018861027136600461306a565b610a84565b6101606102843660046130f0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff90811691161490565b6102d66102d1366004613131565b610b94565b60405161016c93929190613236565b6101a96102f3366004613273565b61106e565b7f000000000000000000000000000000000000000000000000000000000000000061023e565b61033161032c3660046132e4565b611368565b60405161016c929190613387565b6103b161034d366004613441565b5f91825260208281526040808420928452918152918190208151606081018352905460ff8082161515808452610100830490911615159483018590526201000090910473ffffffffffffffffffffffffffffffffffffffff16919092018190529092565b604080519315158452911515602084015273ffffffffffffffffffffffffffffffffffffffff169082015260600161016c565b6101606103f2366004613493565b611492565b61023e7f000000000000000000000000000000000000000000000000000000000000000081565b61023e7f000000000000000000000000000000000000000000000000000000000000000081565b61045861045336600461358d565b611658565b60405161016c91906135d1565b610478610473366004613bcf565b61184d565b60405161016c929190613cc7565b61023e7f000000000000000000000000000000000000000000000000000000000000000081565b6104c06104bb366004613ce7565b611ba3565b60405161016c9493929190613d1f565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fb8c757e600000000000000000000000000000000000000000000000000000000148061056257507fffffffff0000000000000000000000000000000000000000000000000000000082167feeb73e8900000000000000000000000000000000000000000000000000000000145b806105ae57507fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a0200000000000000000000000000000000000000000000000000000000145b92915050565b6040517f6352211e000000000000000000000000000000000000000000000000000000008152600481018990525f9061066f9073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610643573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106679190613de8565b8a6002611de4565b6040517f6352211e000000000000000000000000000000000000000000000000000000008152600481018a9052610728907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa1580156106fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107209190613de8565b8a600e611de4565b73ffffffffffffffffffffffffffffffffffffffff82166339284f358a610758816107538c8e613e03565b611f69565b898989896040518763ffffffff1660e01b815260040161077d9695949392919061446f565b6020604051808303815f875af1158015610799573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bd91906144af565b9998505050505050505050565b5f806108717f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636352211e896040518263ffffffff1660e01b815260040161082a91815260200190565b602060405180830381865afa158015610845573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108699190613de8565b886002611de4565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663ea74b8af88888615610901576108bd612208565b6040805173ffffffffffffffffffffffffffffffffffffffff9092166020830152810188905260600160405160208183030381529060405280519060200120610903565b5f5b6040518463ffffffff1660e01b81526004016109219392919061461c565b6020604051808303815f875af115801561093d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109619190613de8565b90505f61097e8861075361097860208a018a614771565b86612216565b905073ffffffffffffffffffffffffffffffffffffffff8516633141db7089836109ab60408b018b6147d5565b6040518563ffffffff1660e01b81526004016109ca9493929190614836565b6020604051808303815f875af11580156109e6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0a91906144af565b9250509550959350505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a59575f80fd5b507f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517f6352211e000000000000000000000000000000000000000000000000000000008152600481018790525f90610afd9073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690636352211e9060240161082a565b73ffffffffffffffffffffffffffffffffffffffff8216633141db7088610b28816107538a8c613e03565b87876040518563ffffffff1660e01b8152600401610b499493929190614836565b6020604051808303815f875af1158015610b65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8991906144af565b979650505050505050565b5f8060607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2591906144af565b610c3090600161488e565b925073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663ea74b8af848a8915610cc257610c7e612208565b6040805173ffffffffffffffffffffffffffffffffffffffff909216602083015281018b905260600160405160208183030381529060405280519060200120610cc4565b5f5b6040518463ffffffff1660e01b8152600401610ce293929190614ba8565b6020604051808303815f875af1158015610cfe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d229190613de8565b91505f610d3f84610753610d3960208c018c614771565b87612216565b905073ffffffffffffffffffffffffffffffffffffffff8516635c7465e530610d688b806147d5565b85610d7660408f018f614771565b8f8060600190610d8691906147d5565b6040518963ffffffff1660e01b8152600401610da9989796959493929190614d09565b6020604051808303815f875af1158015610dc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de991906144af565b8414610df757610df7614d83565b6040517fa220d6960000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff84169063a220d696906024015f604051808303815f87803b158015610e5c575f80fd5b505af1158015610e6e573d5f803e3d5ffd5b50505050602086013515610fb8577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632f3f50e0858860200135610ec6612208565b604051602001610ef692919091825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120610f368a80614771565b6040518563ffffffff1660e01b8152600401610f559493929190614db0565b5f604051808303815f875af1158015610f70573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610fb59190810190614f38565b91505b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8b81166024830152604482018690527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064015f604051808303815f87803b15801561104b575f80fd5b505af115801561105d573d5f803e3d5ffd5b505050505096509650969350505050565b5f806110ce7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636352211e896040518263ffffffff1660e01b815260040161082a91815260200190565b6040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101889052611187907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa15801561115b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117f9190613de8565b88600e611de4565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663ea74b8af88888615611217576111d3612208565b6040805173ffffffffffffffffffffffffffffffffffffffff9092166020830152810188905260600160405160208183030381529060405280519060200120611219565b5f5b6040518463ffffffff1660e01b81526004016112379392919061461c565b6020604051808303815f875af1158015611253573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112779190613de8565b6040517fa220d6960000000000000000000000000000000000000000000000000000000081526004810189905290915073ffffffffffffffffffffffffffffffffffffffff82169063a220d696906024015f604051808303815f87803b1580156112df575f80fd5b505af11580156112f1573d5f803e3d5ffd5b505050505f61130d886107538880602001906109789190614771565b905073ffffffffffffffffffffffffffffffffffffffff85166339284f35898361133a60408b018b614771565b61134760608d018d6147d5565b6040518763ffffffff1660e01b81526004016109ca9695949392919061446f565b60c08101355f9081526020818152604080832060e085013584528252808320815160608082018452915460ff808216151583526101008204161515948201949094526201000090930473ffffffffffffffffffffffffffffffffffffffff16918301829052919015806113da57508051155b156113ec575061012090920135929050565b806040015173ffffffffffffffffffffffffffffffffffffffff16638cc35846856040518263ffffffff1660e01b8152600401611429919061501b565b5f60405180830381865afa158015611443573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611488919081019061514b565b9250925050915091565b6040517f83db9d010000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff82811660248301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906383db9d0190604401602060405180830381865afa158015611527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154b919061526c565b1561155857506001611651565b5f848152602081815260408083208683015165ffffffffffff1684528252918290208251606081018452905460ff808216151583526101008204161515928201929092526201000090910473ffffffffffffffffffffffffffffffffffffffff16918101829052906115cd575f915050611651565b806040015173ffffffffffffffffffffffffffffffffffffffff166399f6d77f8686866040518463ffffffff1660e01b815260040161160e93929190615287565b602060405180830381865afa158015611629573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164d919061526c565b9150505b9392505050565b6040517f6352211e000000000000000000000000000000000000000000000000000000008152600481018390526060906117149073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156116e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061170c9190613de8565b84601d611de4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632f3f50e084846020013561175e612208565b60405160200161178e92919091825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101206117ce8680614771565b6040518563ffffffff1660e01b81526004016117ed9493929190614db0565b5f604051808303815f875af1158015611808573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526116519190810190614f38565b5f60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118dd91906144af565b6118e890600161488e565b91506118f4828a611f69565b6040517f5c7465e500000000000000000000000000000000000000000000000000000000815290995073ffffffffffffffffffffffffffffffffffffffff841690635c7465e5906119579030908f908f908f908f908f908f908f90600401614d09565b6020604051808303815f875af1158015611973573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061199791906144af565b82146119a5576119a5614d83565b602084013515611aeb577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632f3f50e08386602001356119f9612208565b604051602001611a2992919091825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120611a698880614771565b6040518563ffffffff1660e01b8152600401611a889493929190614db0565b5f604051808303815f875af1158015611aa3573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611ae89190810190614f38565b90505b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8d81166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064015f604051808303815f87803b158015611b7e575f80fd5b505af1158015611b90573d5f803e3d5ffd5b505050509a509a98505050505050505050565b5f8080606073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166383db9d0160408701803590611bf89060208a016130f0565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff166024820152604401602060405180830381865afa158015611c65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c89919061526c565b15611ca4575f85608001358660a00135935093509350611ddd565b6040858101355f90815260208181528282206060808a0135845290825291839020835192830184525460ff8082161515845261010082041615159183019190915262010000900473ffffffffffffffffffffffffffffffffffffffff16918101829052901580611d1657508060200151155b15611d375785610160013586608001358760a0013594509450945050611ddd565b806040015173ffffffffffffffffffffffffffffffffffffffff1663fb82b1b0876040518263ffffffff1660e01b8152600401611d749190615372565b5f60405180830381865afa158015611d8e573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611dd39190810190615437565b9450945094509450505b9193509193565b5f611ded612208565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611efa57506040517f348b684e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015611ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ef8919061526c565b155b15611f63576040517f264deeaa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b60605f5b8251811015612200573073ffffffffffffffffffffffffffffffffffffffff16838281518110611f9f57611f9f61556d565b602002602001015160a00151610220015173ffffffffffffffffffffffffffffffffffffffff1603611ffd576040517fa23f0adb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806060016040528084838151811061201a5761201a61556d565b602002602001015160a001516101e00151151581526020018483815181106120445761204461556d565b602002602001015160a0015161020001511515815260200184838151811061206e5761206e61556d565b602002602001015160a00151610220015173ffffffffffffffffffffffffffffffffffffffff168152505f808681526020019081526020015f205f83426120b5919061488e565b815260208082019290925260409081015f208351815493850151949092015173ffffffffffffffffffffffffffffffffffffffff1662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff941515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff931515939093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909416939093179190911792909216179055825130908490839081106121885761218861556d565b602002602001015160a00151610220019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060018382815181106121df576121df61556d565b602090810291909101015160a0015190151561020090910152600101611f6d565b509092915050565b5f612211612751565b905090565b60608267ffffffffffffffff81111561223157612231612979565b60405190808252806020026020018201604052801561233a57816020015b6123276040805161010080820183525f808352602080840182905283850182905260608085018390526080808601849052865161026081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e0840181905261020084018190526102208401819052610240840152909190820190815260200160608152602001606081525090565b81526020019060019003908161224f5790505b5090505f5b83811015612749573685858381811061235a5761235a61556d565b905060200281019061236c919061559a565b60a00190505f604051806102600160405280835f01602081019061239091906155d6565b61ffff1681526020018360200160208101906123ac91906155d6565b61ffff1681526020016123c560608501604086016155ef565b63ffffffff1681526020016123e06080850160608601615608565b151581526020016123f760a0850160808601615608565b1515815260200161240e60c0850160a08601615608565b151581525f602082015260400161242b60e0850160c08601615608565b15158152602001612443610100850160e08601615608565b1515815260200161245c61012085016101008601615608565b1515815260200161247561014085016101208601615608565b1515815260200161248e61016085016101408601615608565b151581526020016124a761018085016101608601615608565b151581526020016124c06101a085016101808601615608565b151581526020016124d96101c085016101a08601615608565b15158152600160208201526040016124f96101e085016101c08601615608565b1515815273ffffffffffffffffffffffffffffffffffffffff8716602082015260400161252e61020085016101e086016155d6565b61ffff1681525090506040518061010001604052808888868181106125555761255561556d565b9050602002810190612567919061559a565b612575906020810190615623565b65ffffffffffff1681526020018888868181106125945761259461556d565b90506020028101906125a6919061559a565b6125b79060408101906020016155ef565b63ffffffff1681526020018888868181106125d4576125d461556d565b90506020028101906125e6919061559a565b6125f790606081019060400161563c565b6dffffffffffffffffffffffffffff16815260200188888681811061261e5761261e61556d565b9050602002810190612630919061559a565b6126419060808101906060016155ef565b63ffffffff16815260200188888681811061265e5761265e61556d565b9050602002810190612670919061559a565b6126819060a08101906080016130f0565b73ffffffffffffffffffffffffffffffffffffffff1681526020018281526020018888868181106126b4576126b461556d565b90506020028101906126c6919061559a565b6126d5906102a0810190614771565b6126de91615655565b81526020018888868181106126f5576126f561556d565b9050602002810190612707919061559a565b612716906102c0810190614771565b61271f91615661565b8152508484815181106127345761273461556d565b6020908102919091010152505060010161233f565b509392505050565b5f3660143373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561279a5750808210155b156127c9575f366127ab838561566d565b6127b6928290615680565b6127bf916156a7565b60601c9250505090565b339250505090565b5f602082840312156127e1575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611651575f80fd5b5f8083601f840112612820575f80fd5b50813567ffffffffffffffff811115612837575f80fd5b6020830191508360208260051b8501011115612851575f80fd5b9250929050565b5f8083601f840112612868575f80fd5b50813567ffffffffffffffff81111561287f575f80fd5b602083019150836020828501011115612851575f80fd5b73ffffffffffffffffffffffffffffffffffffffff811681146128b7575f80fd5b50565b80356128c581612896565b919050565b5f805f805f805f8060a0898b0312156128e1575f80fd5b88359750602089013567ffffffffffffffff808211156128ff575f80fd5b61290b8c838d01612810565b909950975060408b0135915080821115612923575f80fd5b61292f8c838d01612810565b909750955060608b0135915080821115612947575f80fd5b506129548b828c01612858565b909450925050608089013561296881612896565b809150509295985092959890939650565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516080810167ffffffffffffffff811182821017156129c9576129c9612979565b60405290565b6040516101c0810167ffffffffffffffff811182821017156129c9576129c9612979565b604051610100810167ffffffffffffffff811182821017156129c9576129c9612979565b604051610120810167ffffffffffffffff811182821017156129c9576129c9612979565b604051610260810167ffffffffffffffff811182821017156129c9576129c9612979565b6040805190810167ffffffffffffffff811182821017156129c9576129c9612979565b60405160c0810167ffffffffffffffff811182821017156129c9576129c9612979565b6040516060810167ffffffffffffffff811182821017156129c9576129c9612979565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612b0f57612b0f612979565b604052919050565b5f67ffffffffffffffff821115612b3057612b30612979565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112612b6b575f80fd5b8135612b7e612b7982612b17565b612ac8565b818152846020838601011115612b92575f80fd5b816020850160208301375f918101602001919091529392505050565b5f67ffffffffffffffff821115612bc757612bc7612979565b5060051b60200190565b80356cffffffffffffffffffffffffff811681146128c5575f80fd5b803563ffffffff811681146128c5575f80fd5b803561ffff811681146128c5575f80fd5b803562ffffff811681146128c5575f80fd5b803560ff811681146128c5575f80fd5b80151581146128b7575f80fd5b80356128c581612c33565b5f6080808385031215612c5c575f80fd5b612c646129a6565b9150823567ffffffffffffffff811115612c7c575f80fd5b8301601f81018513612c8c575f80fd5b80356020612c9c612b7983612bae565b8281526101c09283028401820192828201919089851115612cbb575f80fd5b948301945b84861015612dd05780868b031215612cd6575f80fd5b612cde6129cf565b612ce787612bd1565b8152612cf4858801612bed565b858201526040612d05818901612bed565b908201526060612d16888201612c00565b90820152612d258789016128ba565b8189015260a0878101359082015260c0612d40818901612c11565b9082015260e0612d51888201612c23565b90820152610100612d63888201612c40565b90820152610120612d75888201612c40565b90820152610140612d87888201612c40565b90820152610160612d99888201612c40565b90820152610180612dab888201612c40565b908201526101a0612dbd888201612c40565b9082015283529485019491830191612cc0565b50865250612ddf868201612bed565b8186015250505050612df360408301612c23565b6040820152612e04606083016128ba565b606082015292915050565b5f60808284031215612e1f575f80fd5b612e276129a6565b90508135612e3481612c33565b81526020820135612e4481612c33565b60208201526040820135612e5781612c33565b60408201526060820135612e0481612c33565b5f6101608284031215612e7b575f80fd5b612e836129f3565b9050813567ffffffffffffffff80821115612e9c575f80fd5b612ea885838601612b5c565b83526020840135915080821115612ebd575f80fd5b612ec985838601612b5c565b60208401526040840135915080821115612ee1575f80fd5b612eed85838601612b5c565b6040840152612efe606085016128ba565b60608401526080840135915080821115612f16575f80fd5b612f2285838601612b5c565b608084015260a0840135915080821115612f3a575f80fd5b50612f4784828501612c4b565b60a083015250612f5960c083016128ba565b60c0820152612f6b8360e08401612e0f565b60e082015292915050565b5f805f805f60a08688031215612f8a575f80fd5b85359450602086013567ffffffffffffffff80821115612fa8575f80fd5b612fb489838a01612e6a565b95506040880135915080821115612fc9575f80fd5b50860160608189031215612fdb575f80fd5b92506060860135612feb81612896565b949793965091946080013592915050565b5f805f805f60808688031215613010575f80fd5b853561301b81612896565b9450602086013561302b81612896565b935060408601359250606086013567ffffffffffffffff81111561304d575f80fd5b61305988828901612858565b969995985093965092949392505050565b5f805f805f806080878903121561307f575f80fd5b86359550602087013567ffffffffffffffff8082111561309d575f80fd5b6130a98a838b01612810565b909750955060408901359150808211156130c1575f80fd5b506130ce89828a01612858565b90945092505060608701356130e281612896565b809150509295509295509295565b5f60208284031215613100575f80fd5b813561165181612896565b5f6080828403121561311b575f80fd5b50919050565b5f6040828403121561311b575f80fd5b5f805f805f8060c08789031215613146575f80fd5b863561315181612896565b9550602087013567ffffffffffffffff8082111561316d575f80fd5b90880190610160828b031215613181575f80fd5b90955060408801359080821115613196575f80fd5b6131a28a838b0161310b565b95506060890135945060808901359150808211156131be575f80fd5b506131cb89828a01613121565b9250506131da60a088016128ba565b90509295509295509295565b5f815180845260208085019450602084015f5b8381101561322b57815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016131f9565b509495945050505050565b83815273ffffffffffffffffffffffffffffffffffffffff83166020820152606060408201525f61326a60608301846131e6565b95945050505050565b5f805f805f60a08688031215613287575f80fd5b85359450602086013567ffffffffffffffff808211156132a5575f80fd5b6132b189838a01612e6a565b955060408801359150808211156132c6575f80fd5b506132d38882890161310b565b9350506060860135612feb81612896565b5f602082840312156132f4575f80fd5b813567ffffffffffffffff81111561330a575f80fd5b82016101808185031215611651575f80fd5b5f5b8381101561333657818101518382015260200161331e565b50505f910152565b5f815180845261335581602086016020860161331c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f604080830185845260206040818601528186518084526060935060608701915060608160051b8801018389015f5b83811015613431578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa00185528151805173ffffffffffffffffffffffffffffffffffffffff168452868101518785015288015188840188905261341e8885018261333e565b95870195935050908501906001016133b6565b50909a9950505050505050505050565b5f8060408385031215613452575f80fd5b50508035926020909101359150565b803565ffffffffffff811681146128c5575f80fd5b80356dffffffffffffffffffffffffffff811681146128c5575f80fd5b5f805f8385036101608112156134a7575f80fd5b84359350610120807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0830112156134dc575f80fd5b6134e4612a17565b91506134f260208701613461565b825261350060408701613461565b602083015261351160608701613461565b604083015261352260808701613461565b606083015261353360a08701612bed565b608083015261354460c08701613476565b60a083015261355560e08701612bed565b60c08301526101006135688188016128ba565b60e08401529086013590820152915061358461014085016128ba565b90509250925092565b5f806040838503121561359e575f80fd5b82359150602083013567ffffffffffffffff8111156135bb575f80fd5b6135c785828601613121565b9150509250929050565b602081525f61165160208301846131e6565b5f61026082840312156135f4575f80fd5b6135fc612a3b565b905061360782612c00565b815261361560208301612c00565b602082015261362660408301612bed565b604082015261363760608301612c40565b606082015261364860808301612c40565b608082015261365960a08301612c40565b60a082015261366a60c08301612c40565b60c082015261367b60e08301612c40565b60e082015261010061368e818401612c40565b908201526101206136a0838201612c40565b908201526101406136b2838201612c40565b908201526101606136c4838201612c40565b908201526101806136d6838201612c40565b908201526101a06136e8838201612c40565b908201526101c06136fa838201612c40565b908201526101e061370c838201612c40565b9082015261020061371e838201612c40565b908201526102206137308382016128ba565b90820152610240613742838201612c00565b9082015292915050565b5f613759612b7984612bae565b8381529050602080820190600585901b840186811115613777575f80fd5b845b818110156138b957803567ffffffffffffffff80821115613798575f80fd5b908701906040828b0312156137ab575f80fd5b6137b3612a5f565b8235815285830135828111156137c7575f80fd5b8084019350508a601f8401126137db575f80fd5b82356137e9612b7982612bae565b81815260c09091028401870190878101908d831115613806575f80fd5b948801945b828610156138a45760c0868f031215613822575f80fd5b61382a612a82565b61383387612bed565b8152898701358681168114613846575f80fd5b818b0152604087013561385881612896565b6040820152606087013561386b81612c33565b606082015261387c60808801613461565b608082015261388d60a088016128ba565b60a0820152825260c095909501949088019061380b565b83890152505086525050928201928201613779565b505050509392505050565b5f82601f8301126138d3575f80fd5b6116518383356020850161374c565b5f82601f8301126138f1575f80fd5b81356020613901612b7983612bae565b82815260069290921b8401810191818101908684111561391f575f80fd5b8286015b8481101561398c576040818903121561393a575f80fd5b613942612a5f565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116811461396d575f80fd5b815261397a828601612bed565b81860152835291830191604001613923565b509695505050505050565b5f6139a4612b7984612bae565b8381529050602080820190600585901b8401868111156139c2575f80fd5b845b818110156138b957803567ffffffffffffffff808211156139e3575f80fd5b908701906080828b0312156139f6575f80fd5b6139fe6129a6565b8235613a0981612896565b815282860135613a1881612896565b8187015260408381013583811115613a2e575f80fd5b613a3a8d8287016138e2565b82840152505060608084013583811115613a52575f80fd5b613a5e8d8287016138e2565b9183019190915250865250509282019282016139c4565b5f82601f830112613a84575f80fd5b61165183833560208501613997565b5f613aa0612b7984612bae565b8381529050602080820190600585901b840186811115613abe575f80fd5b845b818110156138b957803567ffffffffffffffff80821115613adf575f80fd5b90870190610340828b031215613af3575f80fd5b613afb6129f3565b613b0483613461565b8152613b11868401612bed565b868201526040613b22818501613476565b908201526060613b33848201612bed565b908201526080613b448482016128ba565b9082015260a0613b568c8583016135e3565b9082015261030083013582811115613b6c575f80fd5b613b788c8286016138c4565b60c08301525061032083013582811115613b90575f80fd5b613b9c8c828601613a75565b60e08301525086525050928201928201613ac0565b5f82601f830112613bc0575f80fd5b61165183833560208501613a93565b5f805f805f805f805f8060e08b8d031215613be8575f80fd5b613bf18b6128ba565b995060208b013567ffffffffffffffff80821115613c0d575f80fd5b613c198e838f01612858565b909b50995060408d0135915080821115613c31575f80fd5b613c3d8e838f01613bb1565b985060608d0135915080821115613c52575f80fd5b613c5e8e838f01612810565b909850965060808d0135915080821115613c76575f80fd5b613c828e838f01612858565b909650945060a08d0135915080821115613c9a575f80fd5b50613ca78d828e01613121565b925050613cb660c08c016128ba565b90509295989b9194979a5092959850565b828152604060208201525f613cdf60408301846131e6565b949350505050565b5f60208284031215613cf7575f80fd5b813567ffffffffffffffff811115613d0d575f80fd5b82016101a08185031215611651575f80fd5b5f6080820186835260208681850152604086604086015260606080606087015283875180865260a08801915060a08160051b89010195508489015f5b82811015613dd6578988037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600184528151805173ffffffffffffffffffffffffffffffffffffffff16895287810151888a0152860151868901869052613dc3868a018261333e565b9850509286019290860190600101613d5b565b50959c9b505050505050505050505050565b5f60208284031215613df8575f80fd5b815161165181612896565b5f611651368484613a93565b805161ffff1682526020810151613e2c602084018261ffff169052565b506040810151613e44604084018263ffffffff169052565b506060810151613e58606084018215159052565b506080810151613e6c608084018215159052565b5060a0810151613e8060a084018215159052565b5060c0810151613e9460c084018215159052565b5060e0810151613ea860e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e080820151151590830152610200808201511515908301526102208082015173ffffffffffffffffffffffffffffffffffffffff16908301526102408082015161ffff811682850152611f63565b5f82825180855260208086019550808260051b8401018186015f5b8481101561405a578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00189528151805184528401516040858501819052815181860181905291860191606090818701905f5b81811015614043578551805163ffffffff1684528a81015167ffffffffffffffff168b8501528581015173ffffffffffffffffffffffffffffffffffffffff908116878601528582015115158686015260808083015165ffffffffffff169086015260a09182015116908401529489019460c090920191600101613fc4565b50509b87019b955050509184019150600101613f6f565b5090979650505050505050565b5f815180845260208085019450602084015f5b8381101561322b57815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff16838801526040909601959082019060010161407a565b5f82825180855260208086019550808260051b8401018186015f5b8481101561405a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08684030189528151608073ffffffffffffffffffffffffffffffffffffffff8083511686528087840151168787015250604080830151828288015261415083880182614067565b925050506060808301519250858203818701525061416e8183614067565b9a86019a94505050908301906001016140e0565b5f82825180855260208086019550808260051b8401018186015f5b8481101561405a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff16908601526060808301519091169085015260808082015173ffffffffffffffffffffffffffffffffffffffff169085015260a080820151610340919061424882880182613e0f565b505060c08201518161030087015261426282870182613f54565b91505060e0820151915084810361032086015261427f81836140c5565b9a86019a945050509083019060010161419d565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126142c5575f80fd5b90910192915050565b5f8383855260208086019550808560051b830101845f5b8781101561405a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe085840301895261431e8288614293565b6040808501823561432e81612896565b73ffffffffffffffffffffffffffffffffffffffff80821688528885013591507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301821261437d575f80fd5b93018781019390359067ffffffffffffffff82111561439a575f80fd5b606080830236038613156143ac575f80fd5b888a01859052928290525f928089015b8385101561440c5786356143cf81612896565b8316815260ff6143e0888d01612c23565b168b82015263ffffffff6143f5878901612bed565b1681870152958101956001949094019381016143bc565b9e8a019e985050509487019450505060019190910190506142e5565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b868152608060208201525f6144876080830188614182565b828103604084015261449a8187896142ce565b905082810360608401526107bd818587614428565b5f602082840312156144bf575f80fd5b5051919050565b8051608080845281518482018190525f9260a0916020918201918388019190865b828110156145d257845180516cffffffffffffffffffffffffff1685528281015163ffffffff908116848701526040808301519091169086015260608082015161ffff16908601528781015173ffffffffffffffffffffffffffffffffffffffff1688860152868101518786015260c08082015162ffffff169086015260e08082015160ff169086015261010080820151151590860152610120808201511515908601526101408082015115159086015261016080820151151590860152610180808201511515908601526101a090810151151590850152938101936101c0909301926001016144e7565b508088015163ffffffff16908901525060408087015160ff169088015260609586015173ffffffffffffffffffffffffffffffffffffffff16959096019490945250929392505050565b838152606060208201525f8351610160606084015261463f6101c084018261333e565b905060208501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08085840301608086015261467b838361333e565b925060408701519150808584030160a0860152614698838361333e565b9250606087015191506146c360c086018373ffffffffffffffffffffffffffffffffffffffff169052565b60808701519150808584030160e08601526146de838361333e565b925060a087015191508085840301610100860152506146fd82826144c6565b91505060c085015161472861012085018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e0850151805115156101408501526020810151151561016085015260408101511515610180850152606081015115156101a085015250604092909201929092529392505050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126147a4575f80fd5b83018035915067ffffffffffffffff8211156147be575f80fd5b6020019150600581901b3603821315612851575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614808575f80fd5b83018035915067ffffffffffffffff821115614822575f80fd5b602001915036819003821315612851575f80fd5b848152606060208201525f61484e6060830186614182565b8281036040840152610b89818587614428565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156105ae576105ae614861565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126148d4575f80fd5b830160208101925035905067ffffffffffffffff8111156148f3575f80fd5b803603821315612851575f80fd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818336030181126142c5575f80fd5b5f608080840183357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301811261496a575f80fd5b8401602081810191359067ffffffffffffffff821115614988575f80fd5b6101c0808302360384131561499b575f80fd5b608089529382905260a0938489015f5b84811015614af3576149d3826149c088612bd1565b6cffffffffffffffffffffffffff169052565b6149de848701612bed565b63ffffffff168483015260406149f5878201612bed565b63ffffffff16908301526060614a0c878201612c00565b61ffff1690830152614a1f8689016128ba565b73ffffffffffffffffffffffffffffffffffffffff1688830152858701358783015260c0614a4e818801612c11565b62ffffff169083015260e0614a64878201612c23565b60ff1690830152610100614a79878201612c40565b151590830152610120614a8d878201612c40565b151590830152610140614aa1878201612c40565b151590830152610160614ab5878201612c40565b151590830152610180614ac9878201612c40565b1515908301526101a0614add878201612c40565b15159083015294820194908201906001016149ab565b50614b0060208a01612bed565b63ffffffff811660208c01529650614b1a60408a01612c23565b60ff811660408c01529650614b3160608a016128ba565b73ffffffffffffffffffffffffffffffffffffffff811660608c015296506107bd565b8035614b5f81612c33565b151582526020810135614b7181612c33565b151560208301526040810135614b8681612c33565b151560408301526060810135614b9b81612c33565b8015156060840152505050565b838152606060208201525f614bbd84856148a1565b6101606060850152614bd46101c085018284614428565b915050614be460208601866148a1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa080868503016080870152614c1a848385614428565b9350614c2960408901896148a1565b93509150808685030160a0870152614c42848484614428565b9350614c50606089016128ba565b73ffffffffffffffffffffffffffffffffffffffff811660c08801529250614c7b60808901896148a1565b93509150808685030160e0870152614c94848484614428565b9350614ca360a0890189614901565b925080868503016101008701525050614cbc8282614933565b915050614ccb60c086016128ba565b73ffffffffffffffffffffffffffffffffffffffff16610120840152614cf8610140840160e08701614b54565b604092909201929092529392505050565b73ffffffffffffffffffffffffffffffffffffffff8916815260a060208201525f614d3860a08301898b614428565b8281036040840152614d4a8189614182565b90508281036060840152614d5f8187896142ce565b90508281036080840152614d74818587614428565b9b9a5050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f606080830187845260208781860152604060606040870152828784526080935060808701905060808860051b880101895f5b8a811015614f26577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a8403018452614e1c828d614293565b8584018135614e2a81612896565b73ffffffffffffffffffffffffffffffffffffffff80821687528984013591507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018212614e79575f80fd5b92018881019290359067ffffffffffffffff821115614e96575f80fd5b8160071b3603841315614ea7575f80fd5b868a01899052918190525f918b87015b82841015614f10578435614eca81612896565b8216815263ffffffff614ede868d01612bed565b168b82015289850135614ef081612896565b8216818b0152848d01358d820152938b0193600193909301928b01614eb7565b978a019796505050928701925050600101614de3565b50909c9b505050505050505050505050565b5f6020808385031215614f49575f80fd5b825167ffffffffffffffff811115614f5f575f80fd5b8301601f81018513614f6f575f80fd5b8051614f7d612b7982612bae565b81815260059190911b82018301908381019087831115614f9b575f80fd5b928401925b82841015610b89578351614fb381612896565b82529284019290840190614fa0565b8035614fcd81612896565b73ffffffffffffffffffffffffffffffffffffffff16825260ff614ff360208301612c23565b16602083015263ffffffff61500a60408301612bed565b166040830152606090810135910152565b602081526150496020820161502f846128ba565b73ffffffffffffffffffffffffffffffffffffffff169052565b5f615056602084016128ba565b73ffffffffffffffffffffffffffffffffffffffff81166040840152506150836060830160408501614fc2565b60c083013560e083015261010060e0840135818401526150a48185016128ba565b90506101206150ca8185018373ffffffffffffffffffffffffffffffffffffffff169052565b610140915080850135828501525061016081850135818501526150ef818601866148a1565b610180868101529250905061326a6101a085018383614428565b5f82601f830112615118575f80fd5b8151615126612b7982612b17565b81815284602083860101111561513a575f80fd5b613cdf82602083016020870161331c565b5f806040838503121561515c575f80fd5b8251915060208084015167ffffffffffffffff8082111561517b575f80fd5b818601915086601f83011261518e575f80fd5b815161519c612b7982612bae565b81815260059190911b830184019084810190898311156151ba575f80fd5b8585015b8381101561525b578051858111156151d4575f80fd5b86016060818d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001811315615208575f80fd5b615210612aa5565b8983015161521d81612896565b815260408301518a820152908201519087821115615239575f80fd5b6152478e8b84860101615109565b6040820152855250509186019186016151be565b508096505050505050509250929050565b5f6020828403121561527c575f80fd5b815161165181612c33565b5f6101608201905084825265ffffffffffff8085511660208401528060208601511660408401525060408401516152c8606084018265ffffffffffff169052565b50606084015165ffffffffffff8116608084015250608084015163ffffffff811660a08401525060a08401516dffffffffffffffffffffffffffff811660c08401525060c084015163ffffffff811660e08401525060e08401516101006153468185018373ffffffffffffffffffffffffffffffffffffffff169052565b8501516101208401525073ffffffffffffffffffffffffffffffffffffffff8316610140830152613cdf565b602081526153866020820161502f846128ba565b5f615393602084016128ba565b73ffffffffffffffffffffffffffffffffffffffff81166040840152506040830135606083015260608301356080830152608083013560a083015260a083013560c08301526153e860e0830160c08501614fc2565b6153f56101408401612c40565b6101606154058185018315159052565b610180915080850135828501525061541f818501856148a1565b6101a085810152915061326a6101c085018383614428565b5f805f806080858703121561544a575f80fd5b845193506020850151925060408501519150606085015167ffffffffffffffff80821115615476575f80fd5b818701915087601f830112615489575f80fd5b8151615497612b7982612bae565b8082825260208201915060208360051b86010192508a8311156154b8575f80fd5b602085015b8381101561555d578051858111156154d3575f80fd5b86016060818e037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215615506575f80fd5b61550e612aa5565b602082015161551c81612896565b815260408201516020820152606082015187811115615539575f80fd5b6155488f602083860101615109565b604083015250845250602092830192016154bd565b50979a9699509497505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd218336030181126155cc575f80fd5b9190910192915050565b5f602082840312156155e6575f80fd5b61165182612c00565b5f602082840312156155ff575f80fd5b61165182612bed565b5f60208284031215615618575f80fd5b813561165181612c33565b5f60208284031215615633575f80fd5b61165182613461565b5f6020828403121561564c575f80fd5b61165182613476565b5f61165136848461374c565b5f611651368484613997565b818103818111156105ae576105ae614861565b5f808585111561568e575f80fd5b8386111561569a575f80fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156156e75780818660140360031b1b83161692505b50509291505056fea2646970667358221220f78e7499b74398171f1f214a951494ad9df69772b94653a96f133a1382cbe22c64736f6c6343000817003300000000000000000000000007c8c5bf08f0361883728a8a5f8824ba5724ece3000000000000000000000000792bdd4dd1e52fcf8fb3e80278a2b4e4396d273200000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d4000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610149575f3560e01c80637da0a877116100c7578063b5d255331161007d578063d76bcf1711610063578063d76bcf1714610465578063f434c91414610486578063fb82b1b0146104ad575f80fd5b8063b5d255331461041e578063b78edb6614610445575f80fd5b806393547ad8116100ad57806393547ad81461033f57806399f6d77f146103e4578063abf8c5c8146103f7575f80fd5b80637da0a877146102f85780638cc358461461031e575f80fd5b8063293c49991161011c578063572b6c0511610102578063572b6c051461027657806360cdd0a7146102c357806370347755146102e5575f80fd5b8063293c4999146102175780634febc03e14610263575f80fd5b806301ffc9a71461014d578063063ca413146101755780631258fa9014610196578063150b7a02146101d3575b5f80fd5b61016061015b3660046127d1565b6104d0565b60405190151581526020015b60405180910390f35b6101886101833660046128ca565b6105b4565b60405190815260200161016c565b6101a96101a4366004612f76565b6107ca565b6040805192835273ffffffffffffffffffffffffffffffffffffffff90911660208301520161016c565b6101e66101e1366004612ffc565b610a17565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161016c565b61023e7f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d481565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016c565b61018861027136600461306a565b610a84565b6101606102843660046130f0565b7f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb56673ffffffffffffffffffffffffffffffffffffffff90811691161490565b6102d66102d1366004613131565b610b94565b60405161016c93929190613236565b6101a96102f3366004613273565b61106e565b7f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb56661023e565b61033161032c3660046132e4565b611368565b60405161016c929190613387565b6103b161034d366004613441565b5f91825260208281526040808420928452918152918190208151606081018352905460ff8082161515808452610100830490911615159483018590526201000090910473ffffffffffffffffffffffffffffffffffffffff16919092018190529092565b604080519315158452911515602084015273ffffffffffffffffffffffffffffffffffffffff169082015260600161016c565b6101606103f2366004613493565b611492565b61023e7f000000000000000000000000792bdd4dd1e52fcf8fb3e80278a2b4e4396d273281565b61023e7f00000000000000000000000007c8c5bf08f0361883728a8a5f8824ba5724ece381565b61045861045336600461358d565b611658565b60405161016c91906135d1565b610478610473366004613bcf565b61184d565b60405161016c929190613cc7565b61023e7f00000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d81565b6104c06104bb366004613ce7565b611ba3565b60405161016c9493929190613d1f565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fb8c757e600000000000000000000000000000000000000000000000000000000148061056257507fffffffff0000000000000000000000000000000000000000000000000000000082167feeb73e8900000000000000000000000000000000000000000000000000000000145b806105ae57507fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a0200000000000000000000000000000000000000000000000000000000145b92915050565b6040517f6352211e000000000000000000000000000000000000000000000000000000008152600481018990525f9061066f9073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d41690636352211e90602401602060405180830381865afa158015610643573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106679190613de8565b8a6002611de4565b6040517f6352211e000000000000000000000000000000000000000000000000000000008152600481018a9052610728907f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d473ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa1580156106fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107209190613de8565b8a600e611de4565b73ffffffffffffffffffffffffffffffffffffffff82166339284f358a610758816107538c8e613e03565b611f69565b898989896040518763ffffffff1660e01b815260040161077d9695949392919061446f565b6020604051808303815f875af1158015610799573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bd91906144af565b9998505050505050505050565b5f806108717f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d473ffffffffffffffffffffffffffffffffffffffff16636352211e896040518263ffffffff1660e01b815260040161082a91815260200190565b602060405180830381865afa158015610845573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108699190613de8565b886002611de4565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000792bdd4dd1e52fcf8fb3e80278a2b4e4396d27321663ea74b8af88888615610901576108bd612208565b6040805173ffffffffffffffffffffffffffffffffffffffff9092166020830152810188905260600160405160208183030381529060405280519060200120610903565b5f5b6040518463ffffffff1660e01b81526004016109219392919061461c565b6020604051808303815f875af115801561093d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109619190613de8565b90505f61097e8861075361097860208a018a614771565b86612216565b905073ffffffffffffffffffffffffffffffffffffffff8516633141db7089836109ab60408b018b6147d5565b6040518563ffffffff1660e01b81526004016109ca9493929190614836565b6020604051808303815f875af11580156109e6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0a91906144af565b9250509550959350505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d41614610a59575f80fd5b507f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517f6352211e000000000000000000000000000000000000000000000000000000008152600481018790525f90610afd9073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d41690636352211e9060240161082a565b73ffffffffffffffffffffffffffffffffffffffff8216633141db7088610b28816107538a8c613e03565b87876040518563ffffffff1660e01b8152600401610b499493929190614836565b6020604051808303815f875af1158015610b65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8991906144af565b979650505050505050565b5f8060607f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d473ffffffffffffffffffffffffffffffffffffffff166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2591906144af565b610c3090600161488e565b925073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000792bdd4dd1e52fcf8fb3e80278a2b4e4396d27321663ea74b8af848a8915610cc257610c7e612208565b6040805173ffffffffffffffffffffffffffffffffffffffff909216602083015281018b905260600160405160208183030381529060405280519060200120610cc4565b5f5b6040518463ffffffff1660e01b8152600401610ce293929190614ba8565b6020604051808303815f875af1158015610cfe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d229190613de8565b91505f610d3f84610753610d3960208c018c614771565b87612216565b905073ffffffffffffffffffffffffffffffffffffffff8516635c7465e530610d688b806147d5565b85610d7660408f018f614771565b8f8060600190610d8691906147d5565b6040518963ffffffff1660e01b8152600401610da9989796959493929190614d09565b6020604051808303815f875af1158015610dc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de991906144af565b8414610df757610df7614d83565b6040517fa220d6960000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff84169063a220d696906024015f604051808303815f87803b158015610e5c575f80fd5b505af1158015610e6e573d5f803e3d5ffd5b50505050602086013515610fb8577f00000000000000000000000007c8c5bf08f0361883728a8a5f8824ba5724ece373ffffffffffffffffffffffffffffffffffffffff16632f3f50e0858860200135610ec6612208565b604051602001610ef692919091825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120610f368a80614771565b6040518563ffffffff1660e01b8152600401610f559493929190614db0565b5f604051808303815f875af1158015610f70573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610fb59190810190614f38565b91505b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8b81166024830152604482018690527f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d416906323b872dd906064015f604051808303815f87803b15801561104b575f80fd5b505af115801561105d573d5f803e3d5ffd5b505050505096509650969350505050565b5f806110ce7f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d473ffffffffffffffffffffffffffffffffffffffff16636352211e896040518263ffffffff1660e01b815260040161082a91815260200190565b6040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101889052611187907f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d473ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa15801561115b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117f9190613de8565b88600e611de4565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000792bdd4dd1e52fcf8fb3e80278a2b4e4396d27321663ea74b8af88888615611217576111d3612208565b6040805173ffffffffffffffffffffffffffffffffffffffff9092166020830152810188905260600160405160208183030381529060405280519060200120611219565b5f5b6040518463ffffffff1660e01b81526004016112379392919061461c565b6020604051808303815f875af1158015611253573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112779190613de8565b6040517fa220d6960000000000000000000000000000000000000000000000000000000081526004810189905290915073ffffffffffffffffffffffffffffffffffffffff82169063a220d696906024015f604051808303815f87803b1580156112df575f80fd5b505af11580156112f1573d5f803e3d5ffd5b505050505f61130d886107538880602001906109789190614771565b905073ffffffffffffffffffffffffffffffffffffffff85166339284f35898361133a60408b018b614771565b61134760608d018d6147d5565b6040518763ffffffff1660e01b81526004016109ca9695949392919061446f565b60c08101355f9081526020818152604080832060e085013584528252808320815160608082018452915460ff808216151583526101008204161515948201949094526201000090930473ffffffffffffffffffffffffffffffffffffffff16918301829052919015806113da57508051155b156113ec575061012090920135929050565b806040015173ffffffffffffffffffffffffffffffffffffffff16638cc35846856040518263ffffffff1660e01b8152600401611429919061501b565b5f60405180830381865afa158015611443573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611488919081019061514b565b9250925050915091565b6040517f83db9d010000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff82811660248301525f917f00000000000000000000000007c8c5bf08f0361883728a8a5f8824ba5724ece3909116906383db9d0190604401602060405180830381865afa158015611527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154b919061526c565b1561155857506001611651565b5f848152602081815260408083208683015165ffffffffffff1684528252918290208251606081018452905460ff808216151583526101008204161515928201929092526201000090910473ffffffffffffffffffffffffffffffffffffffff16918101829052906115cd575f915050611651565b806040015173ffffffffffffffffffffffffffffffffffffffff166399f6d77f8686866040518463ffffffff1660e01b815260040161160e93929190615287565b602060405180830381865afa158015611629573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164d919061526c565b9150505b9392505050565b6040517f6352211e000000000000000000000000000000000000000000000000000000008152600481018390526060906117149073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d41690636352211e90602401602060405180830381865afa1580156116e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061170c9190613de8565b84601d611de4565b7f00000000000000000000000007c8c5bf08f0361883728a8a5f8824ba5724ece373ffffffffffffffffffffffffffffffffffffffff16632f3f50e084846020013561175e612208565b60405160200161178e92919091825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101206117ce8680614771565b6040518563ffffffff1660e01b81526004016117ed9493929190614db0565b5f604051808303815f875af1158015611808573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526116519190810190614f38565b5f60607f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d473ffffffffffffffffffffffffffffffffffffffff166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118dd91906144af565b6118e890600161488e565b91506118f4828a611f69565b6040517f5c7465e500000000000000000000000000000000000000000000000000000000815290995073ffffffffffffffffffffffffffffffffffffffff841690635c7465e5906119579030908f908f908f908f908f908f908f90600401614d09565b6020604051808303815f875af1158015611973573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061199791906144af565b82146119a5576119a5614d83565b602084013515611aeb577f00000000000000000000000007c8c5bf08f0361883728a8a5f8824ba5724ece373ffffffffffffffffffffffffffffffffffffffff16632f3f50e08386602001356119f9612208565b604051602001611a2992919091825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120611a698880614771565b6040518563ffffffff1660e01b8152600401611a889493929190614db0565b5f604051808303815f875af1158015611aa3573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611ae89190810190614f38565b90505b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8d81166024830152604482018490527f000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d416906323b872dd906064015f604051808303815f87803b158015611b7e575f80fd5b505af1158015611b90573d5f803e3d5ffd5b505050509a509a98505050505050505050565b5f8080606073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000007c8c5bf08f0361883728a8a5f8824ba5724ece3166383db9d0160408701803590611bf89060208a016130f0565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff166024820152604401602060405180830381865afa158015611c65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c89919061526c565b15611ca4575f85608001358660a00135935093509350611ddd565b6040858101355f90815260208181528282206060808a0135845290825291839020835192830184525460ff8082161515845261010082041615159183019190915262010000900473ffffffffffffffffffffffffffffffffffffffff16918101829052901580611d1657508060200151155b15611d375785610160013586608001358760a0013594509450945050611ddd565b806040015173ffffffffffffffffffffffffffffffffffffffff1663fb82b1b0876040518263ffffffff1660e01b8152600401611d749190615372565b5f60405180830381865afa158015611d8e573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611dd39190810190615437565b9450945094509450505b9193509193565b5f611ded612208565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611efa57506040517f348b684e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f00000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d169063348b684e9060c401602060405180830381865afa158015611ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ef8919061526c565b155b15611f63576040517f264deeaa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b60605f5b8251811015612200573073ffffffffffffffffffffffffffffffffffffffff16838281518110611f9f57611f9f61556d565b602002602001015160a00151610220015173ffffffffffffffffffffffffffffffffffffffff1603611ffd576040517fa23f0adb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806060016040528084838151811061201a5761201a61556d565b602002602001015160a001516101e00151151581526020018483815181106120445761204461556d565b602002602001015160a0015161020001511515815260200184838151811061206e5761206e61556d565b602002602001015160a00151610220015173ffffffffffffffffffffffffffffffffffffffff168152505f808681526020019081526020015f205f83426120b5919061488e565b815260208082019290925260409081015f208351815493850151949092015173ffffffffffffffffffffffffffffffffffffffff1662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff941515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff931515939093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909416939093179190911792909216179055825130908490839081106121885761218861556d565b602002602001015160a00151610220019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060018382815181106121df576121df61556d565b602090810291909101015160a0015190151561020090910152600101611f6d565b509092915050565b5f612211612751565b905090565b60608267ffffffffffffffff81111561223157612231612979565b60405190808252806020026020018201604052801561233a57816020015b6123276040805161010080820183525f808352602080840182905283850182905260608085018390526080808601849052865161026081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e0840181905261020084018190526102208401819052610240840152909190820190815260200160608152602001606081525090565b81526020019060019003908161224f5790505b5090505f5b83811015612749573685858381811061235a5761235a61556d565b905060200281019061236c919061559a565b60a00190505f604051806102600160405280835f01602081019061239091906155d6565b61ffff1681526020018360200160208101906123ac91906155d6565b61ffff1681526020016123c560608501604086016155ef565b63ffffffff1681526020016123e06080850160608601615608565b151581526020016123f760a0850160808601615608565b1515815260200161240e60c0850160a08601615608565b151581525f602082015260400161242b60e0850160c08601615608565b15158152602001612443610100850160e08601615608565b1515815260200161245c61012085016101008601615608565b1515815260200161247561014085016101208601615608565b1515815260200161248e61016085016101408601615608565b151581526020016124a761018085016101608601615608565b151581526020016124c06101a085016101808601615608565b151581526020016124d96101c085016101a08601615608565b15158152600160208201526040016124f96101e085016101c08601615608565b1515815273ffffffffffffffffffffffffffffffffffffffff8716602082015260400161252e61020085016101e086016155d6565b61ffff1681525090506040518061010001604052808888868181106125555761255561556d565b9050602002810190612567919061559a565b612575906020810190615623565b65ffffffffffff1681526020018888868181106125945761259461556d565b90506020028101906125a6919061559a565b6125b79060408101906020016155ef565b63ffffffff1681526020018888868181106125d4576125d461556d565b90506020028101906125e6919061559a565b6125f790606081019060400161563c565b6dffffffffffffffffffffffffffff16815260200188888681811061261e5761261e61556d565b9050602002810190612630919061559a565b6126419060808101906060016155ef565b63ffffffff16815260200188888681811061265e5761265e61556d565b9050602002810190612670919061559a565b6126819060a08101906080016130f0565b73ffffffffffffffffffffffffffffffffffffffff1681526020018281526020018888868181106126b4576126b461556d565b90506020028101906126c6919061559a565b6126d5906102a0810190614771565b6126de91615655565b81526020018888868181106126f5576126f561556d565b9050602002810190612707919061559a565b612716906102c0810190614771565b61271f91615661565b8152508484815181106127345761273461556d565b6020908102919091010152505060010161233f565b509392505050565b5f3660143373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb5661614801561279a5750808210155b156127c9575f366127ab838561566d565b6127b6928290615680565b6127bf916156a7565b60601c9250505090565b339250505090565b5f602082840312156127e1575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611651575f80fd5b5f8083601f840112612820575f80fd5b50813567ffffffffffffffff811115612837575f80fd5b6020830191508360208260051b8501011115612851575f80fd5b9250929050565b5f8083601f840112612868575f80fd5b50813567ffffffffffffffff81111561287f575f80fd5b602083019150836020828501011115612851575f80fd5b73ffffffffffffffffffffffffffffffffffffffff811681146128b7575f80fd5b50565b80356128c581612896565b919050565b5f805f805f805f8060a0898b0312156128e1575f80fd5b88359750602089013567ffffffffffffffff808211156128ff575f80fd5b61290b8c838d01612810565b909950975060408b0135915080821115612923575f80fd5b61292f8c838d01612810565b909750955060608b0135915080821115612947575f80fd5b506129548b828c01612858565b909450925050608089013561296881612896565b809150509295985092959890939650565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516080810167ffffffffffffffff811182821017156129c9576129c9612979565b60405290565b6040516101c0810167ffffffffffffffff811182821017156129c9576129c9612979565b604051610100810167ffffffffffffffff811182821017156129c9576129c9612979565b604051610120810167ffffffffffffffff811182821017156129c9576129c9612979565b604051610260810167ffffffffffffffff811182821017156129c9576129c9612979565b6040805190810167ffffffffffffffff811182821017156129c9576129c9612979565b60405160c0810167ffffffffffffffff811182821017156129c9576129c9612979565b6040516060810167ffffffffffffffff811182821017156129c9576129c9612979565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612b0f57612b0f612979565b604052919050565b5f67ffffffffffffffff821115612b3057612b30612979565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112612b6b575f80fd5b8135612b7e612b7982612b17565b612ac8565b818152846020838601011115612b92575f80fd5b816020850160208301375f918101602001919091529392505050565b5f67ffffffffffffffff821115612bc757612bc7612979565b5060051b60200190565b80356cffffffffffffffffffffffffff811681146128c5575f80fd5b803563ffffffff811681146128c5575f80fd5b803561ffff811681146128c5575f80fd5b803562ffffff811681146128c5575f80fd5b803560ff811681146128c5575f80fd5b80151581146128b7575f80fd5b80356128c581612c33565b5f6080808385031215612c5c575f80fd5b612c646129a6565b9150823567ffffffffffffffff811115612c7c575f80fd5b8301601f81018513612c8c575f80fd5b80356020612c9c612b7983612bae565b8281526101c09283028401820192828201919089851115612cbb575f80fd5b948301945b84861015612dd05780868b031215612cd6575f80fd5b612cde6129cf565b612ce787612bd1565b8152612cf4858801612bed565b858201526040612d05818901612bed565b908201526060612d16888201612c00565b90820152612d258789016128ba565b8189015260a0878101359082015260c0612d40818901612c11565b9082015260e0612d51888201612c23565b90820152610100612d63888201612c40565b90820152610120612d75888201612c40565b90820152610140612d87888201612c40565b90820152610160612d99888201612c40565b90820152610180612dab888201612c40565b908201526101a0612dbd888201612c40565b9082015283529485019491830191612cc0565b50865250612ddf868201612bed565b8186015250505050612df360408301612c23565b6040820152612e04606083016128ba565b606082015292915050565b5f60808284031215612e1f575f80fd5b612e276129a6565b90508135612e3481612c33565b81526020820135612e4481612c33565b60208201526040820135612e5781612c33565b60408201526060820135612e0481612c33565b5f6101608284031215612e7b575f80fd5b612e836129f3565b9050813567ffffffffffffffff80821115612e9c575f80fd5b612ea885838601612b5c565b83526020840135915080821115612ebd575f80fd5b612ec985838601612b5c565b60208401526040840135915080821115612ee1575f80fd5b612eed85838601612b5c565b6040840152612efe606085016128ba565b60608401526080840135915080821115612f16575f80fd5b612f2285838601612b5c565b608084015260a0840135915080821115612f3a575f80fd5b50612f4784828501612c4b565b60a083015250612f5960c083016128ba565b60c0820152612f6b8360e08401612e0f565b60e082015292915050565b5f805f805f60a08688031215612f8a575f80fd5b85359450602086013567ffffffffffffffff80821115612fa8575f80fd5b612fb489838a01612e6a565b95506040880135915080821115612fc9575f80fd5b50860160608189031215612fdb575f80fd5b92506060860135612feb81612896565b949793965091946080013592915050565b5f805f805f60808688031215613010575f80fd5b853561301b81612896565b9450602086013561302b81612896565b935060408601359250606086013567ffffffffffffffff81111561304d575f80fd5b61305988828901612858565b969995985093965092949392505050565b5f805f805f806080878903121561307f575f80fd5b86359550602087013567ffffffffffffffff8082111561309d575f80fd5b6130a98a838b01612810565b909750955060408901359150808211156130c1575f80fd5b506130ce89828a01612858565b90945092505060608701356130e281612896565b809150509295509295509295565b5f60208284031215613100575f80fd5b813561165181612896565b5f6080828403121561311b575f80fd5b50919050565b5f6040828403121561311b575f80fd5b5f805f805f8060c08789031215613146575f80fd5b863561315181612896565b9550602087013567ffffffffffffffff8082111561316d575f80fd5b90880190610160828b031215613181575f80fd5b90955060408801359080821115613196575f80fd5b6131a28a838b0161310b565b95506060890135945060808901359150808211156131be575f80fd5b506131cb89828a01613121565b9250506131da60a088016128ba565b90509295509295509295565b5f815180845260208085019450602084015f5b8381101561322b57815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016131f9565b509495945050505050565b83815273ffffffffffffffffffffffffffffffffffffffff83166020820152606060408201525f61326a60608301846131e6565b95945050505050565b5f805f805f60a08688031215613287575f80fd5b85359450602086013567ffffffffffffffff808211156132a5575f80fd5b6132b189838a01612e6a565b955060408801359150808211156132c6575f80fd5b506132d38882890161310b565b9350506060860135612feb81612896565b5f602082840312156132f4575f80fd5b813567ffffffffffffffff81111561330a575f80fd5b82016101808185031215611651575f80fd5b5f5b8381101561333657818101518382015260200161331e565b50505f910152565b5f815180845261335581602086016020860161331c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f604080830185845260206040818601528186518084526060935060608701915060608160051b8801018389015f5b83811015613431578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa00185528151805173ffffffffffffffffffffffffffffffffffffffff168452868101518785015288015188840188905261341e8885018261333e565b95870195935050908501906001016133b6565b50909a9950505050505050505050565b5f8060408385031215613452575f80fd5b50508035926020909101359150565b803565ffffffffffff811681146128c5575f80fd5b80356dffffffffffffffffffffffffffff811681146128c5575f80fd5b5f805f8385036101608112156134a7575f80fd5b84359350610120807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0830112156134dc575f80fd5b6134e4612a17565b91506134f260208701613461565b825261350060408701613461565b602083015261351160608701613461565b604083015261352260808701613461565b606083015261353360a08701612bed565b608083015261354460c08701613476565b60a083015261355560e08701612bed565b60c08301526101006135688188016128ba565b60e08401529086013590820152915061358461014085016128ba565b90509250925092565b5f806040838503121561359e575f80fd5b82359150602083013567ffffffffffffffff8111156135bb575f80fd5b6135c785828601613121565b9150509250929050565b602081525f61165160208301846131e6565b5f61026082840312156135f4575f80fd5b6135fc612a3b565b905061360782612c00565b815261361560208301612c00565b602082015261362660408301612bed565b604082015261363760608301612c40565b606082015261364860808301612c40565b608082015261365960a08301612c40565b60a082015261366a60c08301612c40565b60c082015261367b60e08301612c40565b60e082015261010061368e818401612c40565b908201526101206136a0838201612c40565b908201526101406136b2838201612c40565b908201526101606136c4838201612c40565b908201526101806136d6838201612c40565b908201526101a06136e8838201612c40565b908201526101c06136fa838201612c40565b908201526101e061370c838201612c40565b9082015261020061371e838201612c40565b908201526102206137308382016128ba565b90820152610240613742838201612c00565b9082015292915050565b5f613759612b7984612bae565b8381529050602080820190600585901b840186811115613777575f80fd5b845b818110156138b957803567ffffffffffffffff80821115613798575f80fd5b908701906040828b0312156137ab575f80fd5b6137b3612a5f565b8235815285830135828111156137c7575f80fd5b8084019350508a601f8401126137db575f80fd5b82356137e9612b7982612bae565b81815260c09091028401870190878101908d831115613806575f80fd5b948801945b828610156138a45760c0868f031215613822575f80fd5b61382a612a82565b61383387612bed565b8152898701358681168114613846575f80fd5b818b0152604087013561385881612896565b6040820152606087013561386b81612c33565b606082015261387c60808801613461565b608082015261388d60a088016128ba565b60a0820152825260c095909501949088019061380b565b83890152505086525050928201928201613779565b505050509392505050565b5f82601f8301126138d3575f80fd5b6116518383356020850161374c565b5f82601f8301126138f1575f80fd5b81356020613901612b7983612bae565b82815260069290921b8401810191818101908684111561391f575f80fd5b8286015b8481101561398c576040818903121561393a575f80fd5b613942612a5f565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116811461396d575f80fd5b815261397a828601612bed565b81860152835291830191604001613923565b509695505050505050565b5f6139a4612b7984612bae565b8381529050602080820190600585901b8401868111156139c2575f80fd5b845b818110156138b957803567ffffffffffffffff808211156139e3575f80fd5b908701906080828b0312156139f6575f80fd5b6139fe6129a6565b8235613a0981612896565b815282860135613a1881612896565b8187015260408381013583811115613a2e575f80fd5b613a3a8d8287016138e2565b82840152505060608084013583811115613a52575f80fd5b613a5e8d8287016138e2565b9183019190915250865250509282019282016139c4565b5f82601f830112613a84575f80fd5b61165183833560208501613997565b5f613aa0612b7984612bae565b8381529050602080820190600585901b840186811115613abe575f80fd5b845b818110156138b957803567ffffffffffffffff80821115613adf575f80fd5b90870190610340828b031215613af3575f80fd5b613afb6129f3565b613b0483613461565b8152613b11868401612bed565b868201526040613b22818501613476565b908201526060613b33848201612bed565b908201526080613b448482016128ba565b9082015260a0613b568c8583016135e3565b9082015261030083013582811115613b6c575f80fd5b613b788c8286016138c4565b60c08301525061032083013582811115613b90575f80fd5b613b9c8c828601613a75565b60e08301525086525050928201928201613ac0565b5f82601f830112613bc0575f80fd5b61165183833560208501613a93565b5f805f805f805f805f8060e08b8d031215613be8575f80fd5b613bf18b6128ba565b995060208b013567ffffffffffffffff80821115613c0d575f80fd5b613c198e838f01612858565b909b50995060408d0135915080821115613c31575f80fd5b613c3d8e838f01613bb1565b985060608d0135915080821115613c52575f80fd5b613c5e8e838f01612810565b909850965060808d0135915080821115613c76575f80fd5b613c828e838f01612858565b909650945060a08d0135915080821115613c9a575f80fd5b50613ca78d828e01613121565b925050613cb660c08c016128ba565b90509295989b9194979a5092959850565b828152604060208201525f613cdf60408301846131e6565b949350505050565b5f60208284031215613cf7575f80fd5b813567ffffffffffffffff811115613d0d575f80fd5b82016101a08185031215611651575f80fd5b5f6080820186835260208681850152604086604086015260606080606087015283875180865260a08801915060a08160051b89010195508489015f5b82811015613dd6578988037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600184528151805173ffffffffffffffffffffffffffffffffffffffff16895287810151888a0152860151868901869052613dc3868a018261333e565b9850509286019290860190600101613d5b565b50959c9b505050505050505050505050565b5f60208284031215613df8575f80fd5b815161165181612896565b5f611651368484613a93565b805161ffff1682526020810151613e2c602084018261ffff169052565b506040810151613e44604084018263ffffffff169052565b506060810151613e58606084018215159052565b506080810151613e6c608084018215159052565b5060a0810151613e8060a084018215159052565b5060c0810151613e9460c084018215159052565b5060e0810151613ea860e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e080820151151590830152610200808201511515908301526102208082015173ffffffffffffffffffffffffffffffffffffffff16908301526102408082015161ffff811682850152611f63565b5f82825180855260208086019550808260051b8401018186015f5b8481101561405a578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00189528151805184528401516040858501819052815181860181905291860191606090818701905f5b81811015614043578551805163ffffffff1684528a81015167ffffffffffffffff168b8501528581015173ffffffffffffffffffffffffffffffffffffffff908116878601528582015115158686015260808083015165ffffffffffff169086015260a09182015116908401529489019460c090920191600101613fc4565b50509b87019b955050509184019150600101613f6f565b5090979650505050505050565b5f815180845260208085019450602084015f5b8381101561322b57815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff16838801526040909601959082019060010161407a565b5f82825180855260208086019550808260051b8401018186015f5b8481101561405a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08684030189528151608073ffffffffffffffffffffffffffffffffffffffff8083511686528087840151168787015250604080830151828288015261415083880182614067565b925050506060808301519250858203818701525061416e8183614067565b9a86019a94505050908301906001016140e0565b5f82825180855260208086019550808260051b8401018186015f5b8481101561405a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff16908601526060808301519091169085015260808082015173ffffffffffffffffffffffffffffffffffffffff169085015260a080820151610340919061424882880182613e0f565b505060c08201518161030087015261426282870182613f54565b91505060e0820151915084810361032086015261427f81836140c5565b9a86019a945050509083019060010161419d565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126142c5575f80fd5b90910192915050565b5f8383855260208086019550808560051b830101845f5b8781101561405a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe085840301895261431e8288614293565b6040808501823561432e81612896565b73ffffffffffffffffffffffffffffffffffffffff80821688528885013591507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301821261437d575f80fd5b93018781019390359067ffffffffffffffff82111561439a575f80fd5b606080830236038613156143ac575f80fd5b888a01859052928290525f928089015b8385101561440c5786356143cf81612896565b8316815260ff6143e0888d01612c23565b168b82015263ffffffff6143f5878901612bed565b1681870152958101956001949094019381016143bc565b9e8a019e985050509487019450505060019190910190506142e5565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b868152608060208201525f6144876080830188614182565b828103604084015261449a8187896142ce565b905082810360608401526107bd818587614428565b5f602082840312156144bf575f80fd5b5051919050565b8051608080845281518482018190525f9260a0916020918201918388019190865b828110156145d257845180516cffffffffffffffffffffffffff1685528281015163ffffffff908116848701526040808301519091169086015260608082015161ffff16908601528781015173ffffffffffffffffffffffffffffffffffffffff1688860152868101518786015260c08082015162ffffff169086015260e08082015160ff169086015261010080820151151590860152610120808201511515908601526101408082015115159086015261016080820151151590860152610180808201511515908601526101a090810151151590850152938101936101c0909301926001016144e7565b508088015163ffffffff16908901525060408087015160ff169088015260609586015173ffffffffffffffffffffffffffffffffffffffff16959096019490945250929392505050565b838152606060208201525f8351610160606084015261463f6101c084018261333e565b905060208501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08085840301608086015261467b838361333e565b925060408701519150808584030160a0860152614698838361333e565b9250606087015191506146c360c086018373ffffffffffffffffffffffffffffffffffffffff169052565b60808701519150808584030160e08601526146de838361333e565b925060a087015191508085840301610100860152506146fd82826144c6565b91505060c085015161472861012085018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e0850151805115156101408501526020810151151561016085015260408101511515610180850152606081015115156101a085015250604092909201929092529392505050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126147a4575f80fd5b83018035915067ffffffffffffffff8211156147be575f80fd5b6020019150600581901b3603821315612851575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614808575f80fd5b83018035915067ffffffffffffffff821115614822575f80fd5b602001915036819003821315612851575f80fd5b848152606060208201525f61484e6060830186614182565b8281036040840152610b89818587614428565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156105ae576105ae614861565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126148d4575f80fd5b830160208101925035905067ffffffffffffffff8111156148f3575f80fd5b803603821315612851575f80fd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818336030181126142c5575f80fd5b5f608080840183357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301811261496a575f80fd5b8401602081810191359067ffffffffffffffff821115614988575f80fd5b6101c0808302360384131561499b575f80fd5b608089529382905260a0938489015f5b84811015614af3576149d3826149c088612bd1565b6cffffffffffffffffffffffffff169052565b6149de848701612bed565b63ffffffff168483015260406149f5878201612bed565b63ffffffff16908301526060614a0c878201612c00565b61ffff1690830152614a1f8689016128ba565b73ffffffffffffffffffffffffffffffffffffffff1688830152858701358783015260c0614a4e818801612c11565b62ffffff169083015260e0614a64878201612c23565b60ff1690830152610100614a79878201612c40565b151590830152610120614a8d878201612c40565b151590830152610140614aa1878201612c40565b151590830152610160614ab5878201612c40565b151590830152610180614ac9878201612c40565b1515908301526101a0614add878201612c40565b15159083015294820194908201906001016149ab565b50614b0060208a01612bed565b63ffffffff811660208c01529650614b1a60408a01612c23565b60ff811660408c01529650614b3160608a016128ba565b73ffffffffffffffffffffffffffffffffffffffff811660608c015296506107bd565b8035614b5f81612c33565b151582526020810135614b7181612c33565b151560208301526040810135614b8681612c33565b151560408301526060810135614b9b81612c33565b8015156060840152505050565b838152606060208201525f614bbd84856148a1565b6101606060850152614bd46101c085018284614428565b915050614be460208601866148a1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa080868503016080870152614c1a848385614428565b9350614c2960408901896148a1565b93509150808685030160a0870152614c42848484614428565b9350614c50606089016128ba565b73ffffffffffffffffffffffffffffffffffffffff811660c08801529250614c7b60808901896148a1565b93509150808685030160e0870152614c94848484614428565b9350614ca360a0890189614901565b925080868503016101008701525050614cbc8282614933565b915050614ccb60c086016128ba565b73ffffffffffffffffffffffffffffffffffffffff16610120840152614cf8610140840160e08701614b54565b604092909201929092529392505050565b73ffffffffffffffffffffffffffffffffffffffff8916815260a060208201525f614d3860a08301898b614428565b8281036040840152614d4a8189614182565b90508281036060840152614d5f8187896142ce565b90508281036080840152614d74818587614428565b9b9a5050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f606080830187845260208781860152604060606040870152828784526080935060808701905060808860051b880101895f5b8a811015614f26577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a8403018452614e1c828d614293565b8584018135614e2a81612896565b73ffffffffffffffffffffffffffffffffffffffff80821687528984013591507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018212614e79575f80fd5b92018881019290359067ffffffffffffffff821115614e96575f80fd5b8160071b3603841315614ea7575f80fd5b868a01899052918190525f918b87015b82841015614f10578435614eca81612896565b8216815263ffffffff614ede868d01612bed565b168b82015289850135614ef081612896565b8216818b0152848d01358d820152938b0193600193909301928b01614eb7565b978a019796505050928701925050600101614de3565b50909c9b505050505050505050505050565b5f6020808385031215614f49575f80fd5b825167ffffffffffffffff811115614f5f575f80fd5b8301601f81018513614f6f575f80fd5b8051614f7d612b7982612bae565b81815260059190911b82018301908381019087831115614f9b575f80fd5b928401925b82841015610b89578351614fb381612896565b82529284019290840190614fa0565b8035614fcd81612896565b73ffffffffffffffffffffffffffffffffffffffff16825260ff614ff360208301612c23565b16602083015263ffffffff61500a60408301612bed565b166040830152606090810135910152565b602081526150496020820161502f846128ba565b73ffffffffffffffffffffffffffffffffffffffff169052565b5f615056602084016128ba565b73ffffffffffffffffffffffffffffffffffffffff81166040840152506150836060830160408501614fc2565b60c083013560e083015261010060e0840135818401526150a48185016128ba565b90506101206150ca8185018373ffffffffffffffffffffffffffffffffffffffff169052565b610140915080850135828501525061016081850135818501526150ef818601866148a1565b610180868101529250905061326a6101a085018383614428565b5f82601f830112615118575f80fd5b8151615126612b7982612b17565b81815284602083860101111561513a575f80fd5b613cdf82602083016020870161331c565b5f806040838503121561515c575f80fd5b8251915060208084015167ffffffffffffffff8082111561517b575f80fd5b818601915086601f83011261518e575f80fd5b815161519c612b7982612bae565b81815260059190911b830184019084810190898311156151ba575f80fd5b8585015b8381101561525b578051858111156151d4575f80fd5b86016060818d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001811315615208575f80fd5b615210612aa5565b8983015161521d81612896565b815260408301518a820152908201519087821115615239575f80fd5b6152478e8b84860101615109565b6040820152855250509186019186016151be565b508096505050505050509250929050565b5f6020828403121561527c575f80fd5b815161165181612c33565b5f6101608201905084825265ffffffffffff8085511660208401528060208601511660408401525060408401516152c8606084018265ffffffffffff169052565b50606084015165ffffffffffff8116608084015250608084015163ffffffff811660a08401525060a08401516dffffffffffffffffffffffffffff811660c08401525060c084015163ffffffff811660e08401525060e08401516101006153468185018373ffffffffffffffffffffffffffffffffffffffff169052565b8501516101208401525073ffffffffffffffffffffffffffffffffffffffff8316610140830152613cdf565b602081526153866020820161502f846128ba565b5f615393602084016128ba565b73ffffffffffffffffffffffffffffffffffffffff81166040840152506040830135606083015260608301356080830152608083013560a083015260a083013560c08301526153e860e0830160c08501614fc2565b6153f56101408401612c40565b6101606154058185018315159052565b610180915080850135828501525061541f818501856148a1565b6101a085810152915061326a6101c085018383614428565b5f805f806080858703121561544a575f80fd5b845193506020850151925060408501519150606085015167ffffffffffffffff80821115615476575f80fd5b818701915087601f830112615489575f80fd5b8151615497612b7982612bae565b8082825260208201915060208360051b86010192508a8311156154b8575f80fd5b602085015b8381101561555d578051858111156154d3575f80fd5b86016060818e037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215615506575f80fd5b61550e612aa5565b602082015161551c81612896565b815260408201516020820152606082015187811115615539575f80fd5b6155488f602083860101615109565b604083015250845250602092830192016154bd565b50979a9699509497505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd218336030181126155cc575f80fd5b9190910192915050565b5f602082840312156155e6575f80fd5b61165182612c00565b5f602082840312156155ff575f80fd5b61165182612bed565b5f60208284031215615618575f80fd5b813561165181612c33565b5f60208284031215615633575f80fd5b61165182613461565b5f6020828403121561564c575f80fd5b61165182613476565b5f61165136848461374c565b5f611651368484613997565b818103818111156105ae576105ae614861565b5f808585111561568e575f80fd5b8386111561569a575f80fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156156e75780818660140360031b1b83161692505b50509291505056fea2646970667358221220f78e7499b74398171f1f214a951494ad9df69772b94653a96f133a1382cbe22c64736f6c63430008170033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000007c8c5bf08f0361883728a8a5f8824ba5724ece3000000000000000000000000792bdd4dd1e52fcf8fb3e80278a2b4e4396d273200000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d4000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566
-----Decoded View---------------
Arg [0] : suckerRegistry (address): 0x07c8c5BF08F0361883728a8a5F8824Ba5724ECe3
Arg [1] : hookDeployer (address): 0x792bDd4Dd1E52FCf8FB3E80278a2b4E4396d2732
Arg [2] : permissions (address): 0x04fD6913d6c32D8C216e153a43C04b1857a7793d
Arg [3] : projects (address): 0x885f707EFA18D2cb12f05a3a8eBA6B4B26c8c1D4
Arg [4] : trustedForwarder (address): 0xc29d6995AB3b0Df4650aD643adeAc55e7acBb566
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000007c8c5bf08f0361883728a8a5f8824ba5724ece3
Arg [1] : 000000000000000000000000792bdd4dd1e52fcf8fb3e80278a2b4e4396d2732
Arg [2] : 00000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d
Arg [3] : 000000000000000000000000885f707efa18d2cb12f05a3a8eba6b4b26c8c1d4
Arg [4] : 000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.

