arc_dx
Version:
A platform for building DAOs
1,222 lines • 3.97 MB
JSON
{
"contractName": "GenesisProtocol",
"abi": [
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
}
],
"name": "parameters",
"outputs": [
{
"name": "preBoostedVoteRequiredPercentage",
"type": "uint256"
},
{
"name": "preBoostedVotePeriodLimit",
"type": "uint256"
},
{
"name": "boostedVotePeriodLimit",
"type": "uint256"
},
{
"name": "thresholdConstA",
"type": "uint256"
},
{
"name": "thresholdConstB",
"type": "uint256"
},
{
"name": "minimumStakingFee",
"type": "uint256"
},
{
"name": "quietEndingPeriod",
"type": "uint256"
},
{
"name": "proposingRepRewardConstA",
"type": "uint256"
},
{
"name": "proposingRepRewardConstB",
"type": "uint256"
},
{
"name": "stakerFeeRatioForVoters",
"type": "uint256"
},
{
"name": "votersReputationLossRatio",
"type": "uint256"
},
{
"name": "votersGainRepRatioFromLostRep",
"type": "uint256"
},
{
"name": "voteOnBehalf",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "NO",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "proposalsCnt",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "DELEGATION_HASH_EIP712",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
}
],
"name": "proposals",
"outputs": [
{
"name": "organizationId",
"type": "bytes32"
},
{
"name": "callbacks",
"type": "address"
},
{
"name": "numOfChoices",
"type": "uint256"
},
{
"name": "votersStakes",
"type": "uint256"
},
{
"name": "submittedTime",
"type": "uint256"
},
{
"name": "boostedPhaseTime",
"type": "uint256"
},
{
"name": "state",
"type": "uint8"
},
{
"name": "winningVote",
"type": "uint256"
},
{
"name": "proposer",
"type": "address"
},
{
"name": "currentBoostedVotePeriodLimit",
"type": "uint256"
},
{
"name": "paramsHash",
"type": "bytes32"
},
{
"name": "daoBountyRemain",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "stakingToken",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ETH_SIGN_PREFIX",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "NUM_OF_CHOICES",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "YES",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
}
],
"name": "organizations",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
}
],
"name": "orgBoostedProposalsCnt",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "_stakingToken",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": true,
"name": "_organization",
"type": "address"
},
{
"indexed": true,
"name": "_staker",
"type": "address"
},
{
"indexed": false,
"name": "_vote",
"type": "uint256"
},
{
"indexed": false,
"name": "_amount",
"type": "uint256"
}
],
"name": "Stake",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": true,
"name": "_organization",
"type": "address"
},
{
"indexed": true,
"name": "_beneficiary",
"type": "address"
},
{
"indexed": false,
"name": "_amount",
"type": "uint256"
}
],
"name": "Redeem",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": true,
"name": "_organization",
"type": "address"
},
{
"indexed": true,
"name": "_beneficiary",
"type": "address"
},
{
"indexed": false,
"name": "_amount",
"type": "uint256"
}
],
"name": "RedeemDaoBounty",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": true,
"name": "_organization",
"type": "address"
},
{
"indexed": true,
"name": "_beneficiary",
"type": "address"
},
{
"indexed": false,
"name": "_amount",
"type": "uint256"
}
],
"name": "RedeemReputation",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": false,
"name": "_executionState",
"type": "uint8"
}
],
"name": "GPExecuteProposal",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": true,
"name": "_organization",
"type": "address"
},
{
"indexed": false,
"name": "_numOfChoices",
"type": "uint256"
},
{
"indexed": false,
"name": "_proposer",
"type": "address"
},
{
"indexed": false,
"name": "_paramsHash",
"type": "bytes32"
}
],
"name": "NewProposal",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": true,
"name": "_organization",
"type": "address"
},
{
"indexed": false,
"name": "_decision",
"type": "uint256"
},
{
"indexed": false,
"name": "_totalReputation",
"type": "uint256"
}
],
"name": "ExecuteProposal",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": true,
"name": "_organization",
"type": "address"
},
{
"indexed": true,
"name": "_voter",
"type": "address"
},
{
"indexed": false,
"name": "_vote",
"type": "uint256"
},
{
"indexed": false,
"name": "_reputation",
"type": "uint256"
}
],
"name": "VoteProposal",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": true,
"name": "_organization",
"type": "address"
}
],
"name": "CancelProposal",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": true,
"name": "_organization",
"type": "address"
},
{
"indexed": true,
"name": "_voter",
"type": "address"
}
],
"name": "CancelVoting",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "_numOfChoices",
"type": "uint256"
},
{
"name": "_paramsHash",
"type": "bytes32"
},
{
"name": "_proposer",
"type": "address"
},
{
"name": "_organization",
"type": "address"
}
],
"name": "propose",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "",
"type": "bytes32"
}
],
"name": "cancelProposal",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
},
{
"name": "_vote",
"type": "uint256"
},
{
"name": "_amount",
"type": "uint256"
}
],
"name": "stake",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
},
{
"name": "_vote",
"type": "uint256"
},
{
"name": "_amount",
"type": "uint256"
},
{
"name": "_nonce",
"type": "uint256"
},
{
"name": "_signatureType",
"type": "uint256"
},
{
"name": "_signature",
"type": "bytes"
}
],
"name": "stakeWithSignature",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
},
{
"name": "_vote",
"type": "uint256"
},
{
"name": "_voter",
"type": "address"
}
],
"name": "vote",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "address"
}
],
"name": "ownerVote",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
},
{
"name": "_vote",
"type": "uint256"
},
{
"name": "_rep",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
},
{
"name": "_voter",
"type": "address"
}
],
"name": "voteWithSpecifiedAmounts",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "cancelVote",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "getNumberOfChoices",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
},
{
"name": "_voter",
"type": "address"
}
],
"name": "voteInfo",
"outputs": [
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
},
{
"name": "_choice",
"type": "uint256"
}
],
"name": "voteStatus",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "isVotable",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "proposalStatus",
"outputs": [
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "getProposalOrganization",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
},
{
"name": "_staker",
"type": "address"
}
],
"name": "getStaker",
"outputs": [
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
},
{
"name": "_vote",
"type": "uint256"
}
],
"name": "voteStake",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "winningVote",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "state",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isAbstainAllow",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getAllowedRangeOfChoices",
"outputs": [
{
"name": "min",
"type": "uint256"
},
{
"name": "max",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "execute",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
},
{
"name": "_beneficiary",
"type": "address"
}
],
"name": "redeem",
"outputs": [
{
"name": "rewards",
"type": "uint256[5]"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
},
{
"name": "_beneficiary",
"type": "address"
}
],
"name": "redeemDaoBounty",
"outputs": [
{
"name": "redeemedAmount",
"type": "uint256"
},
{
"name": "potentialAmount",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "shouldBoost",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "score",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_organizationId",
"type": "bytes32"
}
],
"name": "getBoostedProposalsCount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_paramsHash",
"type": "bytes32"
},
{
"name": "_organizationId",
"type": "bytes32"
}
],
"name": "threshold",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_params",
"type": "uint256[14]"
},
{
"name": "_voteOnBehalf",
"type": "address"
}
],
"name": "setParameters",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_params",
"type": "uint256[14]"
},
{
"name": "_voteOnBehalf",
"type": "address"
}
],
"name": "getParametersHash",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b506040516020806200566183398101604052516200004c73543ff227f64aa17ea132bf9886cab5db55dcaddf640100000000620000a1810204565b156200007e5760068054600160a060020a03191673543ff227f64aa17ea132bf9886cab5db55dcaddf1790556200009a565b60068054600160a060020a031916600160a060020a0383161790555b50620000af565b6000903b63ffffffff161190565b6155a280620000bf6000396000f3006080604052600436106101d45763ffffffff60e060020a6000350416630250680481146101d95780630d4834421461025f578063119ce91b1461028657806316db5172146102c35780631702ef0c146102e757806321b4b3dc146102ff578063245d775e146103145780632d598e58146103645780632daedd521461037f57806330ca0a53146103b157806332ed5b12146103c6578063339e23d114610469578063369847cb1461049057806337376ca8146104e057806339500019146104f85780633c13381814610525578063488c65fc1461053d5780635142bc1e1461057157806351d997b21461058657806361d585da1461059b5780636359036b146105d757806370743768146105fb57806372f702f31461061657806376124dac1461064757806379a1c1f61461066e5780637cb6cf3e146106b957806380f5e0a11461074357806388737b5e1461075b5780639525c0cc146107885780639bc5689d1461025f578063a003651d146107a2578063b2449d65146107ba578063b4512913146107cf578063ba51b14e146107ea578063c083510614610802578063cc3bf9e91461081a578063e5af18c514610876578063e751f2711461088e578063eafd7189146108a6578063fb6c0cbb146108be575b600080fd5b3480156101e557600080fd5b506101f16004356108d6565b604080519d8e5260208e019c909c528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e0880152610100870152610120860152610140850152610160840152600160a060020a031661018083015251908190036101a00190f35b34801561026b57600080fd5b50610274610946565b60408051918252519081900360200190f35b34801561029257600080fd5b506102aa600435600160a060020a036024351661094b565b6040805192835260208301919091528051918290030190f35b3480156102cf57600080fd5b506102aa600435600160a060020a03602435166109ae565b3480156102f357600080fd5b506102746004356109df565b34801561030b57600080fd5b506102746109f4565b34801561032057600080fd5b50604080516101c08181019092526102749136916004916101c491908390600e9083908390808284375093965050509135600160a060020a031692506109fa915050565b34801561037057600080fd5b5061027460043560243561113a565b34801561038b57600080fd5b5061039d60043560243560443561133a565b604080519115158252519081900360200190f35b3480156103bd57600080fd5b50610274611350565b3480156103d257600080fd5b506103de600435611486565b604080518d8152600160a060020a038d1660208201529081018b9052606081018a90526080810189905260a0810188905260c0810187600581111561041f57fe5b60ff168152602081019690965250600160a060020a039093166040808601919091526060850192909252608084015260a0830191909152519081900360c001975095505050505050f35b34801561047557600080fd5b5061039d600435602435600160a060020a03604435166114f6565b34801561049c57600080fd5b50604080516101c08181019092526102749136916004916101c491908390600e9083908390808284375093965050509135600160a060020a031692506114ff915050565b3480156104ec57600080fd5b5061039d6004356116db565b34801561050457600080fd5b5061039d600435602435604435606435600160a060020a03608435166116e1565b34801561053157600080fd5b50610274600435611848565b34801561054957600080fd5b5061039d6004803590602480359160443591606435916084359160a43590810191013561185d565b34801561057d57600080fd5b506102aa611d4f565b34801561059257600080fd5b5061039d611d56565b3480156105a757600080fd5b506105b3600435611d5c565b604051808260058111156105c357fe5b60ff16815260200191505060405180910390f35b3480156105e357600080fd5b506102aa600435600160a060020a0360243516611d74565b34801561060757600080fd5b506102746004356024356121cf565b34801561062257600080fd5b5061062b6121f0565b60408051600160a060020a039092168252519081900360200190f35b34801561065357600080fd5b5061039d600435602435600160a060020a03604435166121ff565b34801561067a57600080fd5b50610686600435612365565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b3480156106c557600080fd5b506106ce6123b6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107085781810151838201526020016106f0565b50505050905090810190601f1680156107355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561074f57600080fd5b5061039d6004356123ed565b34801561076757600080fd5b50610274600435602435600160a060020a036044358116906064351661251b565b34801561079457600080fd5b506107a06004356128e3565b005b3480156107ae57600080fd5b506102746004356128fc565b3480156107c657600080fd5b50610274612911565b3480156107db57600080fd5b50610274600435602435612916565b3480156107f657600080fd5b5061062b600435612937565b34801561080e57600080fd5b5061039d600435612952565b34801561082657600080fd5b5061083e600435600160a060020a036024351661295d565b604051808260a080838360005b8381101561086357818101518382015260200161084b565b5050505090500191505060405180910390f35b34801561088257600080fd5b506102746004356130a8565b34801561089a57600080fd5b5061039d6004356130b3565b3480156108b257600080fd5b506102746004356130da565b3480156108ca57600080fd5b50610274600435613138565b600060208190529081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b8c0154600e909c01549a9b999a98999798969795969495939492939192909190600160a060020a03168d565b600281565b6000806109566153ab565b5050506000918252600160208181526040808520600160a060020a039490941685526010909301815292829020825160608101845281548082529282015494810185905260029091015460ff16151592019190915291565b6000918252600160208181526040808520600160a060020a0394909416855260129093019052912080549101549091565b6000818152600160205260409020545b919050565b60025481565b600080610a056153cf565b8451606410801590610a18575084516000105b1515610a94576040805160e560020a62461bcd02815260206004820152602b60248201527f30203c20707265426f6f73746564566f7465526571756972656450657263656e60448201527f74616765203c3d20313030000000000000000000000000000000000000000000606482015290519081900360840190fd5b60808501516000108015610ab0575060808501516305f5e10010155b1515610b06576040805160e560020a62461bcd02815260206004820181905260248201527f30203c207468726573686f6c64436f6e737442203c2031303030303030303020604482015290519081900360640190fd5b60608501516a52b7d2dcc80cd2e40000001015610b6d576040805160e560020a62461bcd02815260206004820181905260248201527f7468726573686f6c64436f6e737441203c3d2031303030303030303020776569604482015290519081900360640190fd5b61012085015160641015610bcb576040805160e560020a62461bcd02815260206004820152601e60248201527f7374616b6572466565526174696f466f72566f74657273203c3d203130300000604482015290519081900360640190fd5b61014085015160641015610c29576040805160e560020a62461bcd02815260206004820181905260248201527f766f7465727352657075746174696f6e4c6f7373526174696f203c3d20313030604482015290519081900360640190fd5b61016085015160641015610cac576040805160e560020a62461bcd028152602060048201526024808201527f766f746572734761696e526570526174696f46726f6d4c6f7374526570203c3d60448201527f2031303000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60c085015160408601511015610d32576040805160e560020a62461bcd02815260206004820152602b60248201527f626f6f73746564566f7465506572696f644c696d6974203e3d2071756965744560448201527f6e64696e67506572696f64000000000000000000000000000000000000000000606482015290519081900360840190fd5b60e08501516305f5e1001015610db8576040805160e560020a62461bcd02815260206004820152602560248201527f70726f706f73696e67526570526577617264436f6e737441203c3d203130303060448201527f3030303030000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6101008501516305f5e1001015610e3f576040805160e560020a62461bcd02815260206004820152602560248201527f70726f706f73696e67526570526577617264436f6e737442203c3d203130303060448201527f3030303030000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61012085015161018086015160029091021015610ecc576040805160e560020a62461bcd02815260206004820152602d60248201527f64616f426f756e7479436f6e7374203c3d2032202a207374616b65724665655260448201527f6174696f466f72566f7465727300000000000000000000000000000000000000606482015290519081900360840190fd5b6101208501516101808601511015610f54576040805160e560020a62461bcd02815260206004820152602960248201527f64616f426f756e7479436f6e7374203e3d207374616b6572466565526174696f60448201527f466f72566f746572730000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610f5e85856114ff565b915084600c6020020151816000602002015284600d60200201518160016020020152604080516101c08101909152808660006020908102919091015182520186600160209081029190910151825201866002602090810291909101518252018660036020908102919091015182520186600460209081029190910151825201866005602090810291909101518252018660066020908102919091015182520186600760209081029190910151825201866008602090810291909101518252018660096020908102919091015182520186600a6020908102919091015182520186600b602090810291909101518252818101849052600160a060020a03871660409283015260008581528082528290208351815590830151600182015590820151600280830191909155606083015160038301556080830151600483015560a0830151600583015560c0830151600683015560e0830151600783015561010083015160088301556101208301516009830155610140830151600a830155610160830151600b8301556101808301516110fa91600c840191906153ea565b506101a09190910151600e909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055509392505050565b6000806000611147615428565b600080611153876130da565b6000898152602081815260409182902082516101c08101845281548152600182015492810192909252600280820154838501526003820154606084015260048201546080840152600582015460a0840152600682015460c0840152600782015460e084015260088201546101008401526009820154610120840152600a820154610140840152600b82015461016084015283518085019485905294995097509092909161018084019190600c840190899082845b815481526020019060010190808311611207575050509183525050600e9190910154600160a060020a03166020909101526080810151909350600010611297576040805160e560020a62461bcd02815260206004820181905260248201527f73686f756c6420626520612076616c696420706172616d657465722068617368604482015290519081900360640190fd5b6112c26112aa8460800151601a0b61314a565b6112b687601a0b61314a565b9063ffffffff61315816565b915060646112cf83613175565b601a0b13156112e5576112e2606461314a565b91505b611320611304836112f887601a0b61314a565b9063ffffffff61318116565b6113148560600151601a0b61314a565b9063ffffffff61322d16565b905061132b81613175565b601a0b98975050505050505050565b60006113488484843361323a565b949350505050565b604080517f616464726573732047656e6573697350726f746f636f6c4164647265737300006020808301919091527f627974657333322050726f706f73616c49640000000000000000000000000000603e8301527f75696e7420566f7465000000000000000000000000000000000000000000000060508301527f75696e7420416d6f756e74546f5374616b65000000000000000000000000000060598301527f75696e74204e6f6e636500000000000000000000000000000000000000000000606b83015282516055818403018152607590920192839052815191929182918401908083835b602083106114565780518252601f199092019160209182019101611437565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b600160208190526000918252604090912080549181015460028201546003830154600484015460058501546006860154600787015460088801546009890154600a8a0154600b909a0154600160a060020a03998a169a989997989697959660ff909516959394939092169290918c565b60009392505050565b60008281602002015183600160200201518460026020020151856003602002015186600460200201518760056020020151886006602002015189600760200201518a600860200201518b600960200201518c600a60200201518d600b60200201518e600c60200201518f600d6020020151604051602001808f81526020018e81526020018d81526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019e5050505050505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083106116195780518252601f1990920191602091820191016115fa565b51815160209384036101000a60001901801990921691161790526040805192909401829003822082820152600160a060020a0388166c0100000000000000000000000002828501528351808303603401815260549092019384905281519195509293508392850191508083835b602083106116a55780518252601f199092019160209182019101611686565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b92915050565b50600090565b6000806116ec615428565b6000886116f8816135af565b151561170357600080fd5b60008a8152600160208181526040808420600a8082015486528584529482902082516101c081018452815481529481015493850193909352600280840154858401526003840154606086015260048401546080860152600584015460a0860152600684015460c0860152600784015460e08601526008840154610100860152600984015461012086015294830154610140850152600b830154610160850152815180830192839052909850929391926101808501929091600c8501919082845b8154815260200190600101908083116117c3575050509183525050600e9190910154600160a060020a039081166020909201919091526101a0820151919450161561182a576101a0830151600160a060020a0316331461182257600080fd5b85915061182e565b3391505b61183a8a838b8b613605565b9a9950505050505050505050565b60009081526001602052604090206007015490565b600080600060078585604051808383808284379091019485525050604051928390036020019092205460ff16159150611897905057600080fd5b8560021415611b1957604080517f616464726573732047656e6573697350726f746f636f6c4164647265737300006020808301919091527f627974657333322050726f706f73616c49640000000000000000000000000000603e8301527f75696e7420566f7465000000000000000000000000000000000000000000000060508301527f75696e7420416d6f756e74546f5374616b65000000000000000000000000000060598301527f75696e74204e6f6e636500000000000000000000000000000000000000000000606b83015282516055818403018152607590920192839052815191929182918401908083835b602083106119a65780518252601f199092019160209182019101611987565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020308b8b8b8b6040516020018086600160a060020a0316600160a060020a03166c010000000000000000000000000281526014018560001916600019168152602001848152602001838152602001828152602001955050505050506040516020818303038152906040526040518082805190602001908083835b60208310611a6b5780518252601f199092019160209182019101611a4c565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208282019790975281840196909652825180820384018152606090910192839052805190959294508493509185019190508083835b60208310611ae55780518252601f199092019160209182019101611ac6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150611cb0565b604080518082018252601c81527f19457468657265756d205369676e6564204d6573736167653a0a33320000000060208083019190915282516c01000000000000000000000000300281830152603481018e9052605481018d9052607481018c905260948082018c90528451808303909101815260b49091019384905280519293909290918291908401908083835b60208310611bc75780518252601f199092019160209182019101611ba8565b51815160209384036101000a6000190180199092169116179052604051919093018190038120865190955090830193508392860191508083835b60208310611c205780518252601f199092019160209182019101611c01565b51815160209384036101000a600019018019909216911617905292019384525060408051808503815293820190819052835193945092839250908401908083835b60208310611c805780518252601f199092019160209182019101611c61565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091505b611cf285858080601f01602080910402602001604051908101604052809392919081815260200183838082843750889594505063ffffffff613c621692505050565b9050600160a060020a0381161515611d0957600080fd5b60016007868660405180838380828437909101948552505060405192839003602001909220805493151560ff19909416939093179092555061183a90508a8a8a8461323a565b6002809091565b60005b90565b60009081526001602052604090206006015460ff1690565b600080600080611d82615428565b600087815260016020526040812093506002600685015460ff166005811115611da757fe5b1480611dc557506001600685015460ff166005811115611dc357fe5b145b1515611dd057600080fd5b60078401546000908152601185016020908152604080832054600160a060020a038b16845260128801909252822060020154909450118015611e2f57506007840154600160a060020a0388166000908152601286016020526040902054145b8015611e3f575060018460070154145b8015611e4a57508215155b15611fce57600a848101546000908152602081815260409182902082516101c08101845281548152600182015492810192909252600280820154838501526003820154606084015260048201546080840152600582015460a0840152600682015460c0840152600782015460e08401526008820154610100840152600982015461012084015293810154610140830152600b8101546101608301528251808401938490529193909261018085019291600c85019182845b815481526020019060010190808311611f01575050509183525050600e9190910154600160a060020a03908116602092830152610180830151820151908a166000908152601288019092526040909120600201549193508491611f699163ffffffff613d3716565b811515611f7257fe5b600160a060020a0389166000908152601287016020526040812060020154610180860151939092049350606492611fb692915b60200201519063ffffffff613d3716565b811515611fbf57fe5b04945080851115611fce578094505b841580159061207e57506001840154600654604080517f6b8eb403000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018c9052905188939290921691636b8eb403916044808201926020929091908290030181600087803b15801561204f57600080fd5b505af1158015612063573d6000803e3d6000fd5b505050506040513d602081101561207957600080fd5b505110155b156121c457600b840154612098908663ffffffff613d6016565b600b8501556001840154600654604080517fbea75f28000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201528a8316602482015260448101899052606481018c90529051919092169163bea75f289160848083019260209291908290030181600087803b15801561212057600080fd5b505af1158015612134573d6000803e3d6000fd5b505050506040513d602081101561214a57600080fd5b5051151561215757600080fd5b600160a060020a03808816600081815260128701602090815260408083206002018390558854835260058252918290205482518a81529251999a508a99939416928c927fb4a37163ec93e05e09b62e52f7f2ea8cfde431802edede7dfebe53d2ad969dbb92908290030190a45b505050509250929050565b60009182526001602090815260408084209284526011909201905290205490565b600654600160a060020a031681565b60008061220a615428565b600086612216816135af565b151561222157600080fd5b6000888152600160208181526040808420600a8082015486528584529482902082516101c081018452815481529481015493850193909352600280840154858401526003840154606086015260048401546080860152600584015460a0860152600684015460c0860152600784015460e08601526008840154610100860152600984015461012086015294830154610140850152600b830154610160850152815180830192839052909850929391926101808501929091600c8501919082845b8154815260200190600101908083116122e1575050509183525050600e9190910154600160a060020a039081166020909201919091526101a08201519194501615612348576101a0830151600160a060020a0316331461234057600080fd5b85915061234c565b3391505b6123598883896000613605565b98975050505050505050565b6000908152600160208181526040808420838552600f8101835281852054600280875283872054600c840154600d850154978952601190940190955283872054908752929095205494959294909392565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a333200000000602082015281565b60006123f761549e565b60008381526001602081815260409283902083516101a0810185528154815292810154600160a060020a031691830191909152600281015492820192909252600382015460608201526004820154608082015260058083015460a0830152600683015491929160c084019160ff9091169081111561247157fe5b600581111561247c57fe5b8152600782015460208201526008820154600160a060020a031660408083019190915260098301546060830152600a8301546080830152600b83015460a083015280518082019182905260c09092019190600c84019060029082845b8154815260200190600101908083116124d8575050505050815250509050612509816101400151826000015161113a565b61251284613d72565b12159392505050565b60008061252661549e565b6002871461253357600080fd5b6000868152602081905260408120541161254c57600080fd5b600254604080516c01000000000000000000000000300260208083019190915260348083019490945282518083039094018452605490910191829052825182918401908083835b602083106125b25780518252601f199092019160209182019101612593565b51815160209384036101000a600019018019909216911617905260408051929094018290039091206002805460010190558684018d90523387830181905284516c0100000000000000000000000091820281850152600160a060020a038c1690910260348201528451808203602801815260489091019485905280519198509550929350839290850191508083835b602083106126605780518252601f199092019160209182019101612641565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120845250600391505060c08201819052504260808201908152600087815260208181526040808320600290810154610120870152600160a060020a038a811661010088015260e0870182905261014087018c90528785526001808552948390208751815593870151848601805473ffffffffffffffffffffffffffffffffffffffff1916919092161790559085015190820155606084015160038201559151600483015560a083015160058084019190915560c08401516006840180548695949293919260ff199190911691849081111561275f57fe5b021790555060e0820151600782015561010082015160088201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790556101208201516009820155610140820151600a820155610160820151600b8201556101808201516127d990600c83019060026153ea565b50508151600090815260056020526040902054600160a060020a03161515905061287657600160a060020a038416151561283f5780516000908152600560205260409020805473ffffffffffffffffffffffffffffffffffffffff191633179055612876565b80516000908152600560205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790555b80516000908152600560209081526040918290205482518a8152600160a060020a03898116938201939093528084018a9052925191169184917f75b4ff136cc5de5957574c797de3334eb1c141271922b825eb071e0487ba2c5c9181900360600190a35095945050505050565b806128ed816135af565b15156128f857600080fd5b5050565b60009081526001602052604090206002015490565b600181565b6000918252600160209081526040808420928452600e909201905290205490565b600560205260009081526040902054600160a060020a031681565b60006116d5826135af565b61296561550b565b600061296f615428565b60008581526001602052604081209250808080808080600260068a015460ff16600581111561299a57fe5b14806129b85750600160068a015460ff1660058111156129b657fe5b145b1515612a0e576040805160e560020a62461bcd02815260206004820152601460248201527f77726f6e672070726f706f73616c207374617465000000000000000000000000604482015290519081900360640190fd5b600a898101546000908152602081815260409182902082516101c08101845281548152600182015492810192909252600280820154838501526003820154606084015260048201546080840152600582015460a0840152600682015460c0840152600782015460e08401526008820154610100840152600982015461012084015293810154610140830152600b8101546101608301528251808401938490529193909261018085019291600c85019182845b815481526020019060010190808311612ac0575050509183525050600e9190910154600160a060020a031660209091015260078a015490985060011415612b1b5760026000908152600f8a0160205260409020549450612b31565b60016000908152600f8a01602052604090205494505b610140880151600160a060020a038c16600090815260128b0160205260408120600181015460649890930297909704969550108015612b74575060078901548454145b15612c0d576007890154600090815260118a01602052604090205492508215612bb157600c8901546001850154849102811515612bad57fe5b048a525b600160068a015460ff166005811115612bc657fe5b14612c05576007890154600090815260118a0160205260409020546101608901516064908702048603856001015402811515612bfe57fe5b0460208b01525b600060018501555b600160a060020a038b16600090815260108a0160205260409020600181015490925015801590612c415750600282015460ff165b15612d0f575060026000908152600f890160205260408082205460018352908220540190811115612c88578082600101548a6003015402811515612c8157fe5b0460408b01525b600160068a015460ff166005811115612c9d57fe5b1415612cbd576101408801516001830154606491020460608b0152612d07565b815460078a01541415612d07576101608801516001830154829160649188020204811515612ce757fe5b046064896101400151846001015402811515612cff57fe5b040160608b01525b600060018301555b6008890154600160a060020a038c81169116148015612d32575060018960070154145b8015612d4a57506008890154600160a060020a031615155b15612de65760026000908152600e8a01602052604080822054600183529120546101008a01516103e892612d84920363ffffffff613d3716565b60026000908152600e8c016020526040808220546001835291205460e08c0151612db69290910163ffffffff613d3716565b01811515612dc057fe5b0460808b015260088901805473ffffffffffffffffffffffffffffffffffffffff191690555b60408a01518a5160808c015160608d015160208e015192909301995091010195508615612f4a57600d890154612e1c9088613d60565b600d8a0155600654604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038e81166004830152602482018b90529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015612e9057600080fd5b505af1158015612ea4573d6000803e3d6000fd5b505050506040513d6020811015612eba57600080fd5b50511515612ec757600080fd5b8a600160a060020a0316600560008b600001546000191660001916815260200190815260200160002060009054906101000a9004600160a060020a0316600160a060020a03168d600019167f6d26871c9f457d104b2122485f659f126f7a0cf6938cf20482c03f49794a2fbf8a6040518082815260200191505060405180910390a45b8515613099578860010160009054906101000a9004600160a060020a0316600160a060020a031663d29b5d2f878d8f6040518463ffffffff1660e060020a0281526004018084815260200183600160a060020a0316600160a060020a0316815260200182600019166000191681526020019350505050602060405180830381600087803b158015612fda57600080fd5b505af1158015612fee573d6000803e3d6000fd5b505050506040513d602081101561300457600080fd5b8101908080519060200190929190505050508a600160a060020a0316600560008b600001546000191660001916815260200190815260200160002060009054906101000a9004600160a060020a0316600160a060020a03168d600019167f7419b736daacf66d5c1645948c956fca2b83be1e2e02d486d65713f289d683b8896040518082815260200191505060405180910390a45b50505050505050505092915050565b60006116d582613d72565b6000816130bf816135af565b15156130ca57600080fd5b6130d383613d9c565b9392505050565b600081815260046020526040812081906130f390614477565b15613119576000838152600460205260409020613116904263ffffffff6144f516565b90505b6000838152600360205260409020546130d3908263ffffffff613d6016565b60036020526000908152604090205481565b601a0b650100000000000290565b60008165010000000000840281151561316d57fe5b059392505050565b65010000000000900590565b60008115156131975750650100000000006116d5565b8215156131b45760008212156131ac57600080fd5b5060006116d5565b6131bd826145bb565b15156132055760008213156131e5576131de836131d984613175565b6145dd565b90506116d5565b6131de65010000000000613200856131d96000879003613175565b613158565b600083121561321357600080fd5b6130d36132288361322386614645565b61322d565b614652565b6501000000000091020590565b600080600080613248615428565b600288111580156132595750600088115b151561326457600080fd5b6000871161327157600080fd5b