0 txs
34 calls
constructor
constructor(address _multisig, address _votingPowerAggregator, address _tierer)
functions
bGYD
viewfunction bGYD() view returns (address)
getBallot
viewfunction getBallot(address voter, uint16 proposalId) view returns (uint8)
getCurrentPercentages
viewfunction getCurrentPercentages(uint16 proposalId) view returns (uint256 for_, uint256 against, uint256 abstain)
getProposal
viewfunction getProposal(uint16 proposalId) view returns (tuple)
getVoteTotals
viewfunction getVoteTotals(uint16 proposalId) view returns (tuple)
limitUpgradeabilityParams
viewfunction limitUpgradeabilityParams() view returns (uint8 actionLevelThreshold, uint256 emaThreshold, uint256 minBGYDSupply, address tierStrategy)
listActiveProposals
viewfunction listActiveProposals() view returns (tuple[])
listTimelockedProposals
viewfunction listTimelockedProposals() view returns (tuple[])
multisig
viewfunction multisig() view returns (address)
multisigSunsetAt
viewfunction multisigSunsetAt() view returns (uint256)
proposalsCount
viewfunction proposalsCount() view returns (uint16)
tierer
viewfunction tierer() view returns (address)
votingPowerAggregator
viewfunction votingPowerAggregator() view returns (address)
createAndExecuteProposal
nonpayablefunction createAndExecuteProposal(tuple[] actions)
createProposal
nonpayablefunction createProposal(tuple[] actions)
executeProposal
nonpayablefunction executeProposal(uint16 proposalId)
extendMultisigSunsetAt
nonpayablefunction extendMultisigSunsetAt(uint256 extensionPeriod)
initialize
nonpayablefunction initialize(address _bGYD, tuple _params)
sunsetMultisig
nonpayablefunction sunsetMultisig()
tallyVote
nonpayablefunction tallyVote(uint16 proposalId)
updateLimitUpgradeabilityParams
nonpayablefunction updateLimitUpgradeabilityParams(tuple _params)
vetoProposal
nonpayablefunction vetoProposal(uint16 proposalId)
vote
nonpayablefunction vote(uint16 proposalId, uint8 ballot)
events
Initialized
event Initialized(uint8 version)
MultisigSunset
event MultisigSunset()
MultisigSunsetAtUpdated
event MultisigSunsetAtUpdated(uint256 originalSunset, uint256 newSunset)
ProposalCreated
event ProposalCreated(uint16 indexed id, address proposer, (address target, bytes data, uint256 value)[] actions)
ProposalExecuted
event ProposalExecuted(uint16 indexed proposalId)
ProposalTallied
event ProposalTallied(uint16 indexed proposalId, uint8 status, uint8 outcome)
ProposalVetoed
event ProposalVetoed(uint16 indexed proposalId)
VoteCast
event VoteCast(uint16 indexed proposalId, address voter, uint8 vote)
errors
MultisigSunset
error MultisigSunset()
NotAuthorized
error NotAuthorized(address actual, address expected)
creation bytecode
0x60e06040523480156200001157600080fd5b50604051620041a9380380620041a983398101604081905262000034916200006b565b6001600160a01b0392831660805290821660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c05161406662000143600039600081816103c6015281816123fc01526124a301526000818161047e01528181610cda01528181610d820152818161109001526114130152600081816102de01528181610a6601528181610aa801528181611ad901528181611b1b01528181611d410152611d8301526140666000f3fe6080604052600436106101445760003560e01c80634c620631116100b65780637b5f78bd1161006f5780637b5f78bd1461042c578063b61a0cba1461044c578063c1ab52cd1461046c578063c36a4ad2146104a0578063c3955c7b146104fc578063e14ff1081461051e57600080fd5b80634c6206311461030057806352e5c19c146103595780635552005e14610379578063595d53c3146103b4578063618bebfb146103e8578063627759171461040857600080fd5b80632f6675e4116101085780632f6675e41461021257806333f1cddf1461023f57806334e2c0a31461025f5780633ef8a9d51461027457806344ba3430146102945780634783c35b146102cc57600080fd5b806305a71743146101505780630a9f46ad14610172578063179d4250146101a55780631b64a010146101d25780632debaf76146101f257600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061017061016b3660046130b3565b610533565b005b34801561017e57600080fd5b5060075461018d9061ffff1681565b60405161ffff90911681526020015b60405180910390f35b3480156101b157600080fd5b506101c56101c03660046130b3565b610868565b60405161019c91906132c4565b3480156101de57600080fd5b506101706101ed3660046130b3565b610a5b565b3480156101fe57600080fd5b5061017061020d3660046132d7565b610c3d565b34801561021e57600080fd5b5061023261022d3660046130b3565b6111be565b60405161019c919061339a565b34801561024b57600080fd5b5061017061025a3660046133fb565b611204565b34801561026b57600080fd5b506101706116fa565b34801561028057600080fd5b5061017061028f3660046130b3565b611751565b3480156102a057600080fd5b506002546102b4906001600160a01b031681565b6040516001600160a01b03909116815260200161019c565b3480156102d857600080fd5b506102b47f000000000000000000000000000000000000000000000000000000000000000081565b34801561030c57600080fd5b5061034c61031b36600461344e565b6001600160a01b0382166000908152600e6020908152604080832061ffff8516845290915290205460ff1692915050565b60405161019c9190613493565b34801561036557600080fd5b506101706103743660046135bd565b611a05565b34801561038557600080fd5b506103996103943660046130b3565b611a77565b6040805193845260208401929092529082015260600161019c565b3480156103c057600080fd5b506102b47f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f457600080fd5b506101706104033660046135d9565b611ace565b34801561041457600080fd5b5061041e60015481565b60405190815260200161019c565b34801561043857600080fd5b506101706104473660046135f2565b611bc3565b34801561045857600080fd5b506101706104673660046132d7565b611d36565b34801561047857600080fd5b506102b47f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ac57600080fd5b506003546004546005546006546104cf9360ff169291906001600160a01b031684565b6040805160ff90951685526020850193909352918301526001600160a01b0316606082015260800161019c565b34801561050857600080fd5b50610511612052565b60405161019c919061361f565b34801561052a57600080fd5b5061051161206b565b61ffff81166000908152600c60205260408120805490916001600160401b03909116900361057c5760405162461bcd60e51b815260040161057390613681565b60405180910390fd5b600180820154600160f81b900460ff16600581111561059d5761059d6130ce565b1480156105b457506105b4600861ffff841661207a565b6106005760405162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206973206e6f742063757272656e746c79206163746976656044820152606401610573565b80546001600160401b03600160801b909104811642909116116106715760405162461bcd60e51b815260206004820152602360248201527f766f74696e67206973206f6e676f696e6720666f7220746869732070726f706f6044820152621cd85b60ea1b6064820152608401610573565b600080600061067f84612095565b6001870154875493965091945092506001600160401b0380821692600160c01b900416906106b690600160501b900460ff166121af565b156106df5760006106c56122cc565b80516040909101516001600160401b039182169450169150505b6000836106ec86886136ce565b6106f691906136ce565b905082811015610781576001870180546001600160f81b0316600160f91b179055610726600861ffff8a16612372565b508761ffff167fadb6bd5b3af9aa1786cc943a70a5c9652675feaa93103347576f7f654aeb150588600101601f9054906101000a900460ff16600160405161076f9291906136e1565b60405180910390a25050505050505050565b60008061078e87896136ce565b11156107ab576107a86107a187896136ce565b889061237e565b90505b60008382106107e357506001880180546001600160f81b0316600360f81b17905560036107dd600a61ffff8c1661239d565b506107fe565b506001880180546001600160f81b0316600160f91b17905560025b61080d600861ffff8c16612372565b50600189015460405161ffff8c16917fadb6bd5b3af9aa1786cc943a70a5c9652675feaa93103347576f7f654aeb15059161085491600160f81b900460ff169085906136e1565b60405180910390a250505050505050505050565b610870613048565b61ffff8083166000908152600c602090815260409182902082516101408101845281546001600160401b038082168352600160401b808304821695840195909552600160801b8204811695830195909552600160c01b9004841660608201526001820154938416608082015291830490931660a082015260ff600160501b8304811660c08301526001600160a01b03600160581b84041660e0830152909291610100840191600160f81b90910416600581111561092f5761092f6130ce565b6005811115610940576109406130ce565b815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610a4d57600084815260209081902060408051606081019091526003850290910180546001600160a01b0316825260018101805492939192918401916109b290613705565b80601f01602080910402602001604051908101604052809291908181526020018280546109de90613705565b8015610a2b5780601f10610a0057610100808354040283529160200191610a2b565b820191906000526020600020905b815481529060010190602001808311610a0e57829003601f168201915b5050505050815260200160028201548152505081526020019060010190610969565b505050915250909392505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ad55760405163c55ddc9760e01b81523360048201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166024820152604401610573565b6001544210610af757604051637db668c960e11b815260040160405180910390fd5b61ffff81166000908152600c6020526040902080546001600160401b0316610b315760405162461bcd60e51b815260040161057390613681565b600180820154600160f81b900460ff166005811115610b5257610b526130ce565b1480610b7d575060036001820154600160f81b900460ff166005811115610b7b57610b7b6130ce565b145b610bd35760405162461bcd60e51b815260206004820152602160248201527f70726f706f73616c206d75737420626520616374697665206f722071756575656044820152601960fa1b6064820152608401610573565b6001810180546001600160f81b0316600560f81b179055610bf9600861ffff8416612372565b50610c09600a61ffff8416612372565b5060405161ffff8316907fb9016057e49c23c7ed1248a5f032d78553a8fd91d47430235ad549ff2e4c4c0190600090a25050565b80610c9b5760405162461bcd60e51b815260206004820152602860248201527f63616e6e6f742063726561746520612070726f706f73616c2077697468206e6f60448201526720616374696f6e7360c01b6064820152608401610573565b6000610caf610caa838561381d565b6123a9565b9050610cbe8160a001516121af565b15610cce57610ccb6122cc565b90505b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016638ff400f433610d0b600142613895565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381865afa158015610d54573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d7c91908101906138a8565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633bef7abb836040518263ffffffff1660e01b8152600401610dcc919061395b565b602060405180830381865afa158015610de9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0d919061396e565b905082602001516001600160401b03168111610e93576040805162461bcd60e51b81526020600482015260248101919091527f70726f706f73657220646f65736e2774206861766520656e6f75676820766f7460448201527f696e6720706f77657220746f2070726f706f7365207468697320616374696f6e6064820152608401610573565b60808301514290600090610ead9063ffffffff1683613987565b90506000856060015163ffffffff1682610ec79190613987565b60075461ffff166000818152600c6020526040902060018082018054835460a08d015162ff000160401b600160f81b0319909216600160401b968702600160581b600160f81b0319161733600160581b021760ff60501b198116600160501b60ff9094169390930292831784556001600160401b038b811677ffffffffffffffff0000000000000000ffffffffffffffff1990931692909217600160801b8b8416021767ffffffffffffffff60401b1916918816909602178455949550919390926aff00000000000000000001600160f81b03166001600160f81b0390911617600160f81b830217905550865160018201805467ffffffffffffffff19166001600160401b03928316179055604088015182546001600160c01b0316600160c01b919092160217815560005b8881101561105a57816002018a8a83818110611011576110116139a7565b905060200281019061102391906139bd565b8154600181018355600092835260209092209091600302016110458282613a2b565b5050808061105290613b50565b915050610ff3565b506001810154600160401b900461ffff166000908152600d6020526040808220815163151f92d360e01b8152915161110c9391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169263151f92d3926004808401938290030181865afa1580156110de573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111069190810190613b69565b906125a0565b8060010160089054906101000a900461ffff16600161112b9190613c2f565b6007805461ffff191661ffff928316179055600182015461115691600891600160401b90041661239d565b506001810154604051600160401b820461ffff16917fcb3f16169434a634538958c05630f413dc023f1134801e20557048370b5d5d75916111ab91600160581b90046001600160a01b0316908d908d90613c73565b60405180910390a2505050505050505050565b6111e260405180606001604052806060815260200160608152602001606081525090565b61ffff82166000908152600f602052604090206111fe90612672565b92915050565b61ffff82166000908152600c60205260408120805490916001600160401b0390911690036112445760405162461bcd60e51b815260040161057390613681565b80546001600160401b031642116112965760405162461bcd60e51b81526020600482015260166024820152751d9bdd1a5b99c81a185cc81b9bdd081cdd185c9d195960521b6044820152606401610573565b80546001600160401b03428116600160801b90920416116113035760405162461bcd60e51b815260206004820152602160248201527f766f74696e6720697320636c6f736564206f6e20746869732070726f706f73616044820152601b60fa1b6064820152608401610573565b6000826003811115611317576113176130ce565b036113795760405162461bcd60e51b815260206004820152602c60248201527f62616c6c6f74206d757374206265206361737420466f722c20416761696e737460448201526b161037b91020b139ba30b4b760a11b6064820152608401610573565b61ffff83166000908152600d6020908152604080832080548251818502810185019093528083529192909190849084015b828210156113ff576000848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016113aa565b505084549293506000926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063a10202fc915033906001600160401b03166114508661270f565b6040518463ffffffff1660e01b815260040161146e93929190613d5e565b600060405180830381865afa15801561148b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114b391908101906138a8565b336000908152600e6020908152604080832061ffff8a16845290915281205491925060ff90911690808260038111156114ee576114ee6130ce565b14905060005b8351811015611672576000848281518110611511576115116139a7565b60200260200101519050826115ed57805161ffff8a166000908152600f60205260408120909161157b918388600381111561154e5761154e6130ce565b600381111561155f5761155f6130ce565b81526020019081526020016000206127c790919063ffffffff16565b9150506115ea82600001518360200151836115969190613895565b61ffff8d166000908152600f60205260408120908960038111156115bc576115bc6130ce565b60038111156115cd576115cd6130ce565b81526020019081526020016000206127ee9092919063ffffffff16565b50505b805161ffff8a166000908152600f60205260408120909161161b91838c600381111561154e5761154e6130ce565b91505061165c826000015183602001518361163691906136ce565b61ffff8d166000908152600f60205260408120908d60038111156115bc576115bc6130ce565b505050808061166a90613b50565b9150506114f4565b50336000908152600e6020908152604080832061ffff8b1684529091529020805487919060ff191660018360038111156116ae576116ae6130ce565b02179055508661ffff167f813d5173493e8596afc161a427c2269fc55fef4bf9d9ba4fff5e095d569a2ddc33886040516116e9929190613dc8565b60405180910390a250505050505050565b3330146117225760405163c55ddc9760e01b8152336004820152306024820152604401610573565b426001556040517ffb6cd192ba87532aa2e092fc504eb1973196d5f6e0b909ad70eb28810a51a49990600090a1565b61ffff81166000908152600c6020526040902080546001600160401b031661178b5760405162461bcd60e51b815260040161057390613681565b60036001820154600160f81b900460ff1660058111156117ad576117ad6130ce565b1480156117c457506117c4600a61ffff841661207a565b80156117e5575080546001600160401b03600160401b909104811642909116115b6118465760405162461bcd60e51b815260206004820152602c60248201527f70726f706f73616c206d7573742062652071756575656420616e64207265616460448201526b7920746f206578656375746560a01b6064820152608401610573565b60005b60028201548110156119aa5761199782600201828154811061186d5761186d6139a7565b9060005260206000209060030201600101805461188990613705565b80601f01602080910402602001604051908101604052809291908181526020018280546118b590613705565b80156119025780601f106118d757610100808354040283529160200191611902565b820191906000526020600020905b8154815290600101906020018083116118e557829003601f168201915b505050505083600201838154811061191c5761191c6139a7565b906000526020600020906003020160020154604051806040016040528060198152602001781c1c9bdc1bdcd85b08195e1958dd5d1a5bdb8819985a5b1959603a1b815250856002018581548110611975576119756139a7565b60009182526020909120600390910201546001600160a01b031692919061280c565b50806119a281613b50565b915050611849565b506001810180546001600160f81b0316600160fa1b1790556119d1600a61ffff8416612372565b5060405161ffff8316907f92a8e27a614d1092a0e536cf3db1df4965fd891fe65492c53cca79dffb5419a890600090a25050565b333014611a2d5760405163c55ddc9760e01b8152336004820152306024820152604401610573565b80516003805460ff191660ff9092169190911790556020810151600455604081015160055560600151600680546001600160a01b0319166001600160a01b03909216919091179055565b61ffff81166000908152600c602052604081208054829182916001600160401b03168203611ab75760405162461bcd60e51b815260040161057390613681565b611ac081612095565b935093509350509193909250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b485760405163c55ddc9760e01b81523360048201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166024820152604401610573565b6001544210611b6a57604051637db668c960e11b815260040160405180910390fd5b600180549082906000611b7d83856136ce565b90915550506001546040805183815260208101929092527fbb3008cca3ea5eac4f7ba44ed13f06c2447a2c09356a9bf8ae8886d9d16b7009910160405180910390a15050565b600054610100900460ff1615808015611be35750600054600160ff909116105b80611bfd5750303b158015611bfd575060005460ff166001145b611c605760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610573565b6000805460ff191660011790558015611c83576000805461ff0019166101001790555b600280546001600160a01b038086166001600160a01b03199283161790925583516003805460ff90921660ff1990921691909117905560208401516004556040840151600555606084015160068054919093169116179055611ce86276a700426136ce565b6001558015611d31576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611db05760405163c55ddc9760e01b81523360048201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166024820152604401610573565b6001544210611dd257604051637db668c960e11b815260040160405180910390fd5b6007805460009161ffff9091169082611dea83613de1565b82546101009290920a61ffff81810219909316918316021790915581166000818152600c6020526040902060018101805462ff000160401b600160f81b031916600160401b938402600160581b600160f81b0319161733600160581b0217808255825477ffffffffffffffff0000000000000000ffffffffffffffff1916426001600160401b0316908117600160801b82021767ffffffffffffffff60401b19169402939093178255929350916004916001600160f81b0316600160f81b83021790555060018101805467ffffffffffffffff1916905580546001600160c01b0316815560005b83811015611fdc576000858583818110611eed57611eed6139a7565b9050602002810190611eff91906139bd565b611f0890613e02565b600284018054600180820183556000928352602092839020845160039093020180546001600160a01b0319166001600160a01b039093169290921782559183015192935083929091820190611f5d9082613e0e565b50604082015181600201555050611fc781602001518260400151604051806040016040528060198152602001781c1c9bdc1bdcd85b08195e1958dd5d1a5bdb8819985a5b1959603a1b81525084600001516001600160a01b031661280c909392919063ffffffff16565b50508080611fd490613b50565b915050611ed1565b508161ffff167fcb3f16169434a634538958c05630f413dc023f1134801e20557048370b5d5d7533868660405161201593929190613c73565b60405180910390a260405161ffff8316907f92a8e27a614d1092a0e536cf3db1df4965fd891fe65492c53cca79dffb5419a890600090a250505050565b6060612066612061600a6128e7565b6128f4565b905090565b606061206661206160086128e7565b600081815260018301602052604081205415155b9392505050565b6001810154600160401b900461ffff166000908152600d60209081526040808320805482518185028101850190935280835284938493849390929091849084015b8282101561212b576000848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016120d6565b50505060018088015461ffff600160401b909104166000908152600f60205260408120939450612187925083915b600381111561216a5761216a6130ce565b815260200190815260200160002083612b9090919063ffffffff16565b94506121968160006002612159565b93506121a58160006003612159565b9496939550505050565b6002546000906001600160a01b03161580159061223b5750600554600254604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa158015612214573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612238919061396e565b10155b80156122b55750600480546002546040805163f91bde1f60e01b8152905192936001600160a01b039092169263f91bde1f928281019260209291908290030181865afa15801561228f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b3919061396e565b115b80156111fe57505060035460ff9081169116101590565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152600654604051630c87fa5360e21b815260206004820152600060248201526001600160a01b039091169063321fe94c9060440160c060405180830381865afa15801561234e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120669190613ef8565b600061208e8383612c24565b600081612393670de0b6b3a764000085613f98565b61208e9190613faf565b600061208e8383612d17565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526000826000815181106123f0576123f06139a7565b602002602001015190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feb52af5826000015183602001516040518363ffffffff1660e01b8152600401612450929190613fd1565b60c060405180830381865afa15801561246d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124919190613ef8565b915060015b83518110156125995760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feb52af58684815181106124e2576124e26139a7565b602002602001015160000151878581518110612500576125006139a7565b6020026020010151602001516040518363ffffffff1660e01b8152600401612529929190613fd1565b60c060405180830381865afa158015612546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256a9190613ef8565b90508360a0015160ff168160a0015160ff161115612586578093505b508061259181613b50565b915050612496565b5050919050565b8054156125e75760405162461bcd60e51b815260206004820152601560248201527439ba37b930b3b29036bab9ba1031329031b632b0b760591b6044820152606401610573565b60005b8251811015611d315781838281518110612606576126066139a7565b602090810291909101810151825460018082018555600094855293839020825160039092020180546001600160a01b0319166001600160a01b0390921691909117815591810151928201929092556040909101516002909101558061266a81613b50565b9150506125ea565b61269660405180606001604052806060815260200160608152602001606081525090565b60016000908152602083905260408120906126b082612d66565b600260009081526020869052604081209192506126cc82612d66565b600360009081526020889052604081209192506126e882612d66565b60408051606081018252968752602087019490945292850192909252509195945050505050565b80516060906000816001600160401b0381111561272e5761272e6134a6565b604051908082528060200260200182016040528015612757578160200160208202803683370190505b50905060005b828110156127bf57848181518110612777576127776139a7565b602002602001015160000151828281518110612795576127956139a7565b6001600160a01b0390921660209283029190910190910152806127b781613b50565b91505061275d565b509392505050565b60008080806127df866001600160a01b038716612e46565b909450925050505b9250929050565b6000612804846001600160a01b03851684612e80565b949350505050565b60608247101561286d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610573565b600080866001600160a01b031685876040516128899190613ff5565b60006040518083038185875af1925050503d80600081146128c6576040519150601f19603f3d011682016040523d82523d6000602084013e6128cb565b606091505b50915091506128dc87838387612e9d565b979650505050505050565b6060600061208e83612f16565b80516060906000816001600160401b03811115612913576129136134a6565b60405190808252806020026020018201604052801561294c57816020015b612939613048565b8152602001906001900390816129315790505b50905060005b828110156127bf57600c6000868381518110612970576129706139a7565b60209081029190910181015161ffff908116835282820193909352604091820160002082516101408101845281546001600160401b038082168352600160401b808304821695840195909552600160801b8204811695830195909552600160c01b9004841660608201526001820154938416608082015291830490931660a082015260ff600160501b8304811660c08301526001600160a01b03600160581b84041660e0830152909291610100840191600160f81b909104166005811115612a3a57612a3a6130ce565b6005811115612a4b57612a4b6130ce565b815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015612b5857600084815260209081902060408051606081019091526003850290910180546001600160a01b031682526001810180549293919291840191612abd90613705565b80601f0160208091040260200160405190810160405280929190818152602001828054612ae990613705565b8015612b365780601f10612b0b57610100808354040283529160200191612b36565b820191906000526020600020905b815481529060010190602001808311612b1957829003601f168201915b5050505050815260200160028201548152505081526020019060010190612a74565b5050505081525050828281518110612b7257612b726139a7565b60200260200101819052508080612b8890613b50565b915050612952565b6000805b8351811015612c1d576000848281518110612bb157612bb16139a7565b602002602001015190506000612bd48260000151866127c790919063ffffffff16565b915050612bfc8260200151612bf684604001518461237e90919063ffffffff16565b90612f72565b612c0690856136ce565b935050508080612c1590613b50565b915050612b94565b5092915050565b60008181526001830160205260408120548015612d0d576000612c48600183613895565b8554909150600090612c5c90600190613895565b9050818114612cc1576000866000018281548110612c7c57612c7c6139a7565b9060005260206000200154905080876000018481548110612c9f57612c9f6139a7565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612cd257612cd2614007565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506111fe565b60009150506111fe565b6000818152600183016020526040812054612d5e575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556111fe565b5060006111fe565b60606000612d7383612f87565b6001600160401b03811115612d8a57612d8a6134a6565b604051908082528060200260200182016040528015612dcf57816020015b6040805180820190915260008082526020820152815260200190600190039081612da85790505b50905060005b612dde84612f87565b811015612c1d57600080612df28684612f92565b915091506040518060400160405280836001600160a01b0316815260200182815250848481518110612e2657612e266139a7565b602002602001018190525050508080612e3e90613b50565b915050612dd5565b6000818152600283016020526040812054819080612e7557612e688585612fa1565b9250600091506127e79050565b6001925090506127e7565b60008281526002840160205260408120829055612804848461239d565b60608315612f0c578251600003612f05576001600160a01b0385163b612f055760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610573565b5081612804565b6128048383612fad565b606081600001805480602002602001604051908101604052809291908181526020018280548015612f6657602002820191906000526020600020905b815481526020019060010190808311612f52575b50505050509050919050565b6000670de0b6b3a76400006123938385613f98565b60006111fe82612fd7565b60008080806127df8686612fe2565b600061208e838361207a565b815115612fbd5781518083602001fd5b8060405162461bcd60e51b8152600401610573919061401d565b60006111fe8261300d565b60008080612ff08585613017565b600081815260029690960160205260409095205494959350505050565b60006111fe825490565b600061208e83836000826000018281548110613035576130356139a7565b9060005260206000200154905092915050565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052906101008201908152602001606081525090565b803561ffff811681146130ae57600080fd5b919050565b6000602082840312156130c557600080fd5b61208e8261309c565b634e487b7160e01b600052602160045260246000fd5b600681106130f4576130f46130ce565b9052565b60005b838110156131135781810151838201526020016130fb565b50506000910152565b600081518084526131348160208601602086016130f8565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156131bc578284038952815180516001600160a01b031685528581015160608787018190529061319b8288018261311c565b60409384015197909301969096525098850198935090840190600101613166565b5091979650505050505050565b80516001600160401b03168252600061014060208301516131f560208601826001600160401b03169052565b50604083015161321060408601826001600160401b03169052565b50606083015161322b60608601826001600160401b03169052565b50608083015161324660808601826001600160401b03169052565b5060a083015161325c60a086018261ffff169052565b5060c083015161327160c086018260ff169052565b5060e083015161328c60e08601826001600160a01b03169052565b50610100808401516132a0828701826130e4565b50506101208084015182828701526132ba83870182613148565b9695505050505050565b60208152600061208e60208301846131c9565b600080602083850312156132ea57600080fd5b82356001600160401b038082111561330157600080fd5b818501915085601f83011261331557600080fd5b81358181111561332457600080fd5b8660208260051b850101111561333957600080fd5b60209290920196919550909350505050565b600081518084526020808501945080840160005b8381101561338f57815180516001600160a01b03168852830151838801526040909601959082019060010161335f565b509495945050505050565b6020815260008251606060208401526133b6608084018261334b565b90506020840151601f19808584030160408601526133d4838361334b565b92506040860151915080858403016060860152506133f2828261334b565b95945050505050565b6000806040838503121561340e57600080fd5b6134178361309c565b915060208301356004811061342b57600080fd5b809150509250929050565b6001600160a01b038116811461344b57600080fd5b50565b6000806040838503121561346157600080fd5b823561346c81613436565b915061347a6020840161309c565b90509250929050565b6004811061344b5761344b6130ce565b602081016134a083613483565b91905290565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b03811182821017156134de576134de6134a6565b60405290565b604080519081016001600160401b03811182821017156134de576134de6134a6565b604051601f8201601f191681016001600160401b038111828210171561352e5761352e6134a6565b604052919050565b60ff8116811461344b57600080fd5b60006080828403121561355757600080fd5b604051608081018181106001600160401b0382111715613579576135796134a6565b604052905080823561358a81613536565b80825250602083013560208201526040830135604082015260608301356135b081613436565b6060919091015292915050565b6000608082840312156135cf57600080fd5b61208e8383613545565b6000602082840312156135eb57600080fd5b5035919050565b60008060a0838503121561360557600080fd5b823561361081613436565b915061347a8460208501613545565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561367457603f198886030184526136628583516131c9565b94509285019290850190600101613646565b5092979650505050505050565b60208082526017908201527f70726f706f73616c20646f6573206e6f74206578697374000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156111fe576111fe6136b8565b604081016136ef82856130e4565b6136f883613483565b8260208301529392505050565b600181811c9082168061371957607f821691505b60208210810361373957634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160401b03821115613758576137586134a6565b5060051b60200190565b60006060828403121561377457600080fd5b61377c6134bc565b9050813561378981613436565b81526020828101356001600160401b03808211156137a657600080fd5b818501915085601f8301126137ba57600080fd5b8135818111156137cc576137cc6134a6565b6137de601f8201601f19168501613506565b915080825286848285010111156137f457600080fd5b808484018584013760008482840101525080838501525050506040820135604082015292915050565b600061383061382b8461373f565b613506565b80848252602080830192508560051b85013681111561384e57600080fd5b855b818110156138895780356001600160401b0381111561386f5760008081fd5b61387b36828a01613762565b865250938201938201613850565b50919695505050505050565b818103818111156111fe576111fe6136b8565b600060208083850312156138bb57600080fd5b82516001600160401b038111156138d157600080fd5b8301601f810185136138e257600080fd5b80516138f061382b8261373f565b81815260069190911b8201830190838101908783111561390f57600080fd5b928401925b828410156128dc576040848903121561392d5760008081fd5b6139356134e4565b845161394081613436565b81528486015186820152825260409093019290840190613914565b60208152600061208e602083018461334b565b60006020828403121561398057600080fd5b5051919050565b6001600160401b03818116838216019080821115612c1d57612c1d6136b8565b634e487b7160e01b600052603260045260246000fd5b60008235605e198336030181126139d357600080fd5b9190910192915050565b601f821115611d3157600081815260208120601f850160051c81016020861015613a045750805b601f850160051c820191505b81811015613a2357828155600101613a10565b505050505050565b8135613a3681613436565b81546001600160a01b0319166001600160a01b0391909116178155600181810160208481013536869003601e19018112613a6f57600080fd5b850180356001600160401b03811115613a8757600080fd5b8036038383011315613a9857600080fd5b613aac81613aa68654613705565b866139dd565b6000601f821160018114613ae25760008315613aca57508382018501355b600019600385901b1c1916600184901b178655613b3b565b600086815260209020601f19841690835b82811015613b1257868501880135825593870193908901908701613af3565b5084821015613b315760001960f88660031b161c198785880101351681555b50508683881b0186555b50505050505050604082013560028201555050565b600060018201613b6257613b626136b8565b5060010190565b60006020808385031215613b7c57600080fd5b82516001600160401b03811115613b9257600080fd5b8301601f81018513613ba357600080fd5b8051613bb161382b8261373f565b81815260609182028301840191848201919088841115613bd057600080fd5b938501935b83851015613c235780858a031215613bed5760008081fd5b613bf56134bc565b8551613c0081613436565b815285870151878201526040808701519082015283529384019391850191613bd5565b50979650505050505050565b61ffff818116838216019080821115612c1d57612c1d6136b8565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03848116825260406020808401829052838201859052600092606091828601600588901b8701840189875b8a811015613d4d57898303605f190184528135368d9003605e19018112613ccb57600080fd5b8c018035613cd881613436565b871684528086013536829003601e19018112613cf357600080fd5b810186810190356001600160401b03811115613d0e57600080fd5b803603821315613d1d57600080fd5b8988870152613d2f8a87018284613c4a565b928b0135958b01959095525093850193925090840190600101613ca5565b50909b9a5050505050505050505050565b60006060820160018060a01b03808716845260206001600160401b0387168186015260606040860152828651808552608087019150828801945060005b81811015613db9578551851683529483019491830191600101613d9b565b50909998505050505050505050565b6001600160a01b0383168152604081016136f883613483565b600061ffff808316818103613df857613df86136b8565b6001019392505050565b60006111fe3683613762565b81516001600160401b03811115613e2757613e276134a6565b613e3b81613e358454613705565b846139dd565b602080601f831160018114613e705760008415613e585750858301515b600019600386901b1c1916600185901b178555613a23565b600085815260208120601f198616915b82811015613e9f57888601518255948401946001909101908401613e80565b5085821015613ebd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160401b03811681146130ae57600080fd5b805163ffffffff811681146130ae57600080fd5b600060c08284031215613f0a57600080fd5b60405160c081018181106001600160401b0382111715613f2c57613f2c6134a6565b604052613f3883613ecd565b8152613f4660208401613ecd565b6020820152613f5760408401613ecd565b6040820152613f6860608401613ee4565b6060820152613f7960808401613ee4565b608082015260a0830151613f8c81613536565b60a08201529392505050565b80820281158282048414176111fe576111fe6136b8565b600082613fcc57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03831681526040602082018190526000906128049083018461311c565b600082516139d38184602087016130f8565b634e487b7160e01b600052603160045260246000fd5b60208152600061208e602083018461311c56fea2646970667358221220e4f98dfae4654ae7aac074998670566eef3fb4a94ec43bbcafd017e2233330e464736f6c63430008110033000000000000000000000000d59fa68ca9fd50ee79d1a0028910fe71c6df4dc1000000000000000000000000a015a8c96f45758614c4077813dc863a74cb14870000000000000000000000000f51c89c368ccaa518b16d2169ea6bab911bfce1