0 txs
0 calls
constructor
No constructor.
functions
BALLOT_TYPEHASH
viewfunction BALLOT_TYPEHASH() view returns (bytes32)
DOMAIN_TYPEHASH
viewfunction DOMAIN_TYPEHASH() view returns (bytes32)
getActions
viewfunction getActions(uint256 proposalId) view returns (address[] targets, uint256[] values, string[] signatures, bytes[] calldatas)
getReceipt
viewfunction getReceipt(uint256 proposalId, address voter) view returns (tuple)
guardian
viewfunction guardian() view returns (address)
inv
viewfunction inv() view returns (address)
latestProposalIds
viewfunction latestProposalIds(address) view returns (uint256)
name
viewfunction name() view returns (string)
proposalCount
viewfunction proposalCount() view returns (uint256)
proposalMaxOperations
purefunction proposalMaxOperations() pure returns (uint256)
proposals
viewfunction proposals(uint256) view returns (uint256 id, address proposer, uint256 eta, uint256 startBlock, uint256 endBlock, uint256 forVotes, uint256 againstVotes, bool canceled, bool executed)
proposalThreshold
viewfunction proposalThreshold() view returns (uint256)
proposerWhitelist
viewfunction proposerWhitelist(address) view returns (bool)
quorumVotes
viewfunction quorumVotes() view returns (uint256)
state
viewfunction state(uint256 proposalId) view returns (uint8)
timelock
viewfunction timelock() view returns (address)
votingDelay
purefunction votingDelay() pure returns (uint256)
votingPeriod
purefunction votingPeriod() pure returns (uint256)
xinv
viewfunction xinv() view returns (address)
xinvExchangeRates
viewfunction xinvExchangeRates(uint256) view returns (uint256)
__executeSetTimelockPendingAdmin
nonpayablefunction __executeSetTimelockPendingAdmin(address newPendingAdmin, uint256 eta)
__queueSetTimelockPendingAdmin
nonpayablefunction __queueSetTimelockPendingAdmin(address newPendingAdmin, uint256 eta)
acceptAdmin
nonpayablefunction acceptAdmin()
cancel
nonpayablefunction cancel(uint256 proposalId)
castVote
nonpayablefunction castVote(uint256 proposalId, bool support)
castVoteBySig
nonpayablefunction castVoteBySig(uint256 proposalId, bool support, uint8 v, bytes32 r, bytes32 s)
execute
nonpayablefunction execute(uint256 proposalId)
propose
nonpayablefunction propose(address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, string description) returns (uint256)
queue
nonpayablefunction queue(uint256 proposalId)
setGuardian
nonpayablefunction setGuardian(address _newGuardian)
updateProposalQuorum
nonpayablefunction updateProposalQuorum(uint256 newQuorum)
updateProposalThreshold
nonpayablefunction updateProposalThreshold(uint256 newThreshold)
updateProposerWhitelist
nonpayablefunction updateProposerWhitelist(address proposer, bool value)
events
NewGuardian
event NewGuardian(address guardian)
ProposalCanceled
event ProposalCanceled(uint256 id)
ProposalCreated
event ProposalCreated(uint256 id, address proposer, address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, uint256 startBlock, uint256 endBlock, string description)
ProposalExecuted
event ProposalExecuted(uint256 id)
ProposalQueued
event ProposalQueued(uint256 id, uint256 eta)
ProposalThresholdUpdated
event ProposalThresholdUpdated(uint256 oldThreshold, uint256 newThreshold)
ProposerWhitelistUpdated
event ProposerWhitelistUpdated(address proposer, bool value)
QuorumUpdated
event QuorumUpdated(uint256 oldQuorum, uint256 newQuorum)
VoteCast
event VoteCast(address voter, uint256 proposalId, bool support, uint256 votes)
errors
No errors.
creation bytecode
0x608060405273926df14a23be491164dcf93f4c468a50ef659d5b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507341d5d79431a913c4ae7d69a668ecdfe5ff9dfb68600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507365b35d6eb7006e0e607bc54eb2dfd459923476fe600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733fcb35a1cbfb6007f9bc638d388958bc4550cb28600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550683635c9adc5dea0000060055568d8d726b7177a80000060065534801561017d57600080fd5b50615fa6806200018e6000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063452a93201161011a578063b58131b0116100ad578063ddf0b0091161007c578063ddf0b00914610599578063deaaa7cc146105b5578063e23a9a52146105d3578063ed4be8ae14610603578063fe0d94c114610633576101fb565b8063b58131b01461050f578063d33219b41461052d578063da35c6641461054b578063da95691a14610569576101fb565b80637bdbe4d0116100e95780637bdbe4d01461049b5780638a0dac4a146104b957806390df22ed146104d557806391500671146104f3576101fb565b8063452a9320146104155780634634c61f1461043357806357ad62791461044f5780636feecb331461046b576101fb565b806321f43e42116101925780633932abb1116101615780633932abb11461038f5780633e4f49e6146103ad5780633f84d0ee146103dd57806340e58ee5146103f9576101fb565b806321f43e421461030657806324bc1a6414610322578063328dd9821461034057806334bc456014610373576101fb565b80630e18b681116101ce5780630e18b6811461029257806315373e3d1461029c57806317977c61146102b857806320606b70146102e8576101fb565b8063013cf08b1461020057806302a251a314610238578063032d09611461025657806306fdde0314610274575b600080fd5b61021a60048036036102159190810190613c67565b61064f565b60405161022f99989796959493929190615951565b60405180910390f35b6102406106d7565b60405161024d9190615886565b60405180910390f35b61025e6106e1565b60405161026b919061545d565b60405180910390f35b61027c610707565b60405161028991906154c9565b60405180910390f35b61029a610740565b005b6102b660048036036102b19190810190613cf5565b610853565b005b6102d260048036036102cd9190810190613a44565b610862565b6040516102df9190615886565b60405180910390f35b6102f061087a565b6040516102fd9190615381565b60405180910390f35b610320600480360361031b9190810190613aa9565b610891565b005b61032a610a1e565b6040516103379190615886565b60405180910390f35b61035a60048036036103559190810190613c67565b610a24565b60405161036a9493929190615305565b60405180910390f35b61038d60048036036103889190810190613a6d565b610d01565b005b610397610e24565b6040516103a49190615886565b60405180910390f35b6103c760048036036103c29190810190613c67565b610e2d565b6040516103d491906154ae565b60405180910390f35b6103f760048036036103f29190810190613c67565b61100c565b005b610413600480360361040e9190810190613c67565b611265565b005b61041d6115eb565b60405161042a9190615132565b60405180910390f35b61044d60048036036104489190810190613d31565b611611565b005b61046960048036036104649190810190613c67565b6117e0565b005b61048560048036036104809190810190613c67565b611a39565b6040516104929190615886565b60405180910390f35b6104a3611a51565b6040516104b09190615886565b60405180910390f35b6104d360048036036104ce9190810190613a44565b611a5a565b005b6104dd611b87565b6040516104ea9190615493565b60405180910390f35b61050d60048036036105089190810190613aa9565b611bad565b005b610517611d35565b6040516105249190615886565b60405180910390f35b610535611d3b565b6040516105429190615478565b60405180910390f35b610553611d60565b6040516105609190615886565b60405180910390f35b610583600480360361057e9190810190613ae5565b611d66565b6040516105909190615886565b60405180910390f35b6105b360048036036105ae9190810190613c67565b61243e565b005b6105bd61278d565b6040516105ca9190615381565b60405180910390f35b6105ed60048036036105e89190810190613cb9565b6127a4565b6040516105fa919061586b565b60405180910390f35b61061d60048036036106189190810190613a44565b612886565b60405161062a9190615366565b60405180910390f35b61064d60048036036106489190810190613c67565b6128a6565b005b60076020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201549080600701549080600801549080600901549080600a01549080600b0160009054906101000a900460ff169080600b0160019054906101000a900460ff16905089565b6000614380905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280601681526020017f496e766572736520476f7665726e6f72204d696c6c730000000000000000000081525081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c7906156ab565b60405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e18b6816040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b50505050565b61085e338383612ad9565b5050565b60086020528060005260406000206000915090505481565b60405161088690615108565b604051809103902081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610921576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109189061558b565b60405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630825f38f6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000856040516020016109939190615132565b604051602081830303815290604052856040518563ffffffff1660e01b81526004016109c29493929190615176565b600060405180830381600087803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610a199190810190613c26565b505050565b60065481565b60608060608060006007600087815260200190815260200160002090508060030181600401826005018360060183805480602002602001604051908101604052809291908181526020018280548015610ad257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a88575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610b2457602002820191906000526020600020905b815481526020019060010190808311610b10575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015610c08578382906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bf45780601f10610bc957610100808354040283529160200191610bf4565b820191906000526020600020905b815481529060010190602001808311610bd757829003601f168201915b505050505081526020019060010190610b4c565b50505050915080805480602002602001604051908101604052809291908181526020016000905b82821015610ceb578382906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd75780601f10610cac57610100808354040283529160200191610cd7565b820191906000526020600020905b815481529060010190602001808311610cba57829003601f168201915b505050505081526020019060010190610c2f565b5050505090509450945094509450509193509193565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d879061566b565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f25a436f26283d101d1fa18501ce983f57b6ca623fe00f4e9b6ad829d15e9dbab8282604051610e1892919061514d565b60405180910390a15050565b60006001905090565b60008160035410158015610e415750600082115b610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e779061572b565b60405180910390fd5b600060076000848152602001908152602001600020905080600b0160009054906101000a900460ff1615610eb8576002915050611007565b80600701544311610ecd576000915050611007565b80600801544311610ee2576001915050611007565b80600a01548160090154111580610efe57506006548160090154105b15610f0d576003915050611007565b600081600201541415610f24576004915050611007565b80600b0160019054906101000a900460ff1615610f45576007915050611007565b610ff181600201546000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c1a287e26040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb457600080fd5b505afa158015610fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fec9190810190613c90565b612d1d565b4210611001576006915050611007565b60059150505b919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110b457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea9061580b565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561115b57600080fd5b505afa15801561116f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111939190810190613c90565b8111156111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc9061554b565b60405180910390fd5b60065481141561121a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112119061550b565b60405180910390fd5b60006006549050816006819055507f6784e9bcb845caaa98267d7b0918f97d3d17f7cb35a05b52010f7eb587a0acb081836040516112599291906159de565b60405180910390a15050565b600061127082610e2d565b905060078081111561127e57fe5b81600781111561128a57fe5b14156112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c29061556b565b60405180910390fd5b6000600760008481526020019081526020016000209050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611416575060055461138c8260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661136f436001612d72565b600a60008660000154815260200190815260200160002054612dc2565b6bffffffffffffffffffffffff161080156114155750600960008260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c9061576b565b60405180910390fd5b600181600b0160006101000a81548160ff02191690831515021790555060008090505b81600301805490508110156115ae576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663591fcdfe8360030183815481106114d357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401848154811061150d57fe5b906000526020600020015485600501858154811061152757fe5b9060005260206000200186600601868154811061154057fe5b9060005260206000200187600201546040518663ffffffff1660e01b815260040161156f9594939291906152a4565b600060405180830381600087803b15801561158957600080fd5b505af115801561159d573d6000803e3d6000fd5b505050508080600101915050611478565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c836040516115de9190615886565b60405180910390a1505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060405161161f90615108565b60405180910390206040518060400160405280601681526020017f496e766572736520476f7665726e6f72204d696c6c73000000000000000000008152508051906020012061166c612f5b565b30604051602001611680949392919061539c565b60405160208183030381529060405280519060200120905060006040516116a69061511d565b604051809103902087876040516020016116c2939291906153e1565b604051602081830303815290604052805190602001209050600082826040516020016116ef9291906150d1565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161172c9493929190615418565b6020604051602081039080840390855afa15801561174e573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c1906154eb565b60405180910390fd5b6117d5818a8a612ad9565b505050505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061188857506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be9061568b565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561192f57600080fd5b505afa158015611943573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119679190810190613c90565b8111156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a0906157ab565b60405180910390fd5b6005548114156119ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e5906157cb565b60405180910390fd5b60006005549050816005819055507fe92242fc3efcad407a677132b517977331a6e5b65abab69fd757cc02e99c9c4e8183604051611a2d9291906159de565b60405180910390a15050565b600a6020528060005260406000206000915090505481565b60006014905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae1906155cb565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb6182387b7ea948602a7e04e662a27ce251dc3dd014eacaed10dce36b41bf1a5600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611b7c9190615132565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c349061578b565b60405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633a66f9016000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085604051602001611caf9190615132565b604051602081830303815290604052856040518563ffffffff1660e01b8152600401611cde9493929190615176565b602060405180830381600087803b158015611cf857600080fd5b505af1158015611d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d309190810190613bfd565b505050565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6000600554611e2133611d7a436001612d72565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611de457600080fd5b505af1158015611df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e1c9190810190613c90565b612dc2565b6bffffffffffffffffffffffff161180611e845750600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba9061560b565b60405180910390fd5b84518651148015611ed5575083518651145b8015611ee2575082518651145b611f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f189061552b565b60405180910390fd5b600086511415611f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5d9061584b565b60405180910390fd5b611f6e611a51565b86511115611fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa8906157eb565b60405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081146120c057600061200882610e2d565b90506001600781111561201757fe5b81600781111561202357fe5b1415612064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205b9061562b565b60405180910390fd5b6000600781111561207157fe5b81600781111561207d57fe5b14156120be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b5906155eb565b60405180910390fd5b505b60006120d3436120ce610e24565b612d1d565b905060006120e8826120e36106d7565b612d1d565b90506003600081548092919060010191905055506121046131ad565b604051806101a0016040528060035481526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000151581526020016000151581525090508060076000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301908051906020019061220e92919061322f565b50608082015181600401908051906020019061222b9291906132b9565b5060a0820151816005019080519060200190612248929190613306565b5060c0820151816006019080519060200190612265929190613366565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b0160006101000a81548160ff02191690831515021790555061018082015181600b0160016101000a81548160ff021916908315150217905550905050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561234057600080fd5b505af1158015612354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123789190810190613c90565b600a60008360000151815260200190815260200160002081905550806000015160086000836020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e604051612422999897969594939291906158a1565b60405180910390a1806000015194505050505095945050505050565b6004600781111561244b57fe5b61245482610e2d565b600781111561245f57fe5b1461249f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124969061570b565b60405180910390fd5b60006007600083815260200190815260200160002090506000612560426000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561252357600080fd5b505afa158015612537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061255b9190810190613c90565b612d1d565b905060008090505b82600301805490508110156127455761273883600301828154811061258957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460040183815481106125c357fe5b90600052602060002001548560050184815481106125dd57fe5b906000526020600020018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561267b5780601f106126505761010080835404028352916020019161267b565b820191906000526020600020905b81548152906001019060200180831161265e57829003601f168201915b505050505086600601858154811061268f57fe5b906000526020600020018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561272d5780601f106127025761010080835404028352916020019161272d565b820191906000526020600020905b81548152906001019060200180831161271057829003601f168201915b505050505086612f68565b8080600101915050612568565b508082600201819055507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289283826040516127809291906159de565b60405180910390a1505050565b6040516127999061511d565b604051809103902081565b6127ac6133c6565b60076000848152602001908152602001600020600c0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b600560078111156128b357fe5b6128bc82610e2d565b60078111156128c757fe5b14612907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fe906155ab565b60405180910390fd5b6000600760008381526020019081526020016000209050600181600b0160016101000a81548160ff02191690831515021790555060008090505b8160030180549050811015612a9d576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630825f38f83600301838154811061299c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460040184815481106129d657fe5b90600052602060002001548560050185815481106129f057fe5b90600052602060002001866006018681548110612a0957fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401612a389594939291906152a4565b600060405180830381600087803b158015612a5257600080fd5b505af1158015612a66573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250612a8f9190810190613c26565b508080600101915050612941565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f82604051612acd9190615886565b60405180910390a15050565b60016007811115612ae657fe5b612aef83610e2d565b6007811115612afa57fe5b14612b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b31906156eb565b60405180910390fd5b6000600760008481526020019081526020016000209050600081600c0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600015158160000160009054906101000a900460ff16151514612bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be59061564b565b60405180910390fd5b6000612c16868460070154600a60008760000154815260200190815260200160002054612dc2565b90508315612c4757612c3a8360090154826bffffffffffffffffffffffff16612d1d565b8360090181905550612c6c565b612c6383600a0154826bffffffffffffffffffffffff16612d1d565b83600a01819055505b60018260000160006101000a81548160ff021916908315150217905550838260000160016101000a81548160ff021916908315150217905550808260000160026101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055507f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4686868684604051612d0d94939291906151fe565b60405180910390a1505050505050565b600080828401905083811015612d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5f906156cb565b60405180910390fd5b8091505092915050565b600082821115612db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dae9061582b565b60405180910390fd5b818303905092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe186866040518363ffffffff1660e01b8152600401612e229291906151d5565b60206040518083038186803b158015612e3a57600080fd5b505afa158015612e4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612e729190810190613da8565b90506000670de0b6b3a764000084600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe189896040518363ffffffff1660e01b8152600401612edd9291906151d5565b60206040518083038186803b158015612ef557600080fd5b505afa158015612f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f2d9190810190613da8565b6bffffffffffffffffffffffff160281612f4357fe5b049050612f50828261313c565b925050509392505050565b6000804690508091505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2b065378686868686604051602001612fbe959493929190615243565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401612ff09190615381565b60206040518083038186803b15801561300857600080fd5b505afa15801561301c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506130409190810190613bd4565b15613080576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130779061574b565b60405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633a66f90186868686866040518663ffffffff1660e01b81526004016130e2959493929190615243565b602060405180830381600087803b1580156130fc57600080fd5b505af1158015613110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131349190810190613bfd565b505050505050565b6000808284019050836bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610156131a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161319a906156cb565b60405180910390fd5b8091505092915050565b604051806101a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b8280548282559060005260206000209081019282156132a8579160200282015b828111156132a75782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061324f565b5b5090506132b591906133f9565b5090565b8280548282559060005260206000209081019282156132f5579160200282015b828111156132f45782518255916020019190600101906132d9565b5b509050613302919061343c565b5090565b828054828255906000526020600020908101928215613355579160200282015b82811115613354578251829080519060200190613344929190613461565b5091602001919060010190613326565b5b50905061336291906134e1565b5090565b8280548282559060005260206000209081019282156133b5579160200282015b828111156133b45782518290805190602001906133a492919061350d565b5091602001919060010190613386565b5b5090506133c2919061358d565b5090565b604051806060016040528060001515815260200160001515815260200160006bffffffffffffffffffffffff1681525090565b61343991905b8082111561343557600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016133ff565b5090565b90565b61345e91905b8082111561345a576000816000905550600101613442565b5090565b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106134a257805160ff19168380011785556134d0565b828001600101855582156134d0579182015b828111156134cf5782518255916020019190600101906134b4565b5b5090506134dd919061343c565b5090565b61350a91905b8082111561350657600081816134fd91906135b9565b506001016134e7565b5090565b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061354e57805160ff191683800117855561357c565b8280016001018555821561357c579182015b8281111561357b578251825591602001919060010190613560565b5b509050613589919061343c565b5090565b6135b691905b808211156135b257600081816135a99190613601565b50600101613593565b5090565b90565b50805460018160011615610100020316600290046000825580601f106135df57506135fe565b601f0160209004906000526020600020908101906135fd919061343c565b5b50565b50805460018160011615610100020316600290046000825580601f106136275750613646565b601f016020900490600052602060002090810190613645919061343c565b5b50565b60008135905061365881615ed9565b92915050565b600082601f83011261366f57600080fd5b813561368261367d82615a34565b615a07565b915081818352602084019350602081019050838560208402820111156136a757600080fd5b60005b838110156136d757816136bd8882613649565b8452602084019350602083019250506001810190506136aa565b5050505092915050565b600082601f8301126136f257600080fd5b813561370561370082615a5c565b615a07565b9150818183526020840193506020810190508360005b8381101561374b578135860161373188826138a0565b84526020840193506020830192505060018101905061371b565b5050505092915050565b600082601f83011261376657600080fd5b813561377961377482615a84565b615a07565b9150818183526020840193506020810190508360005b838110156137bf57813586016137a58882613948565b84526020840193506020830192505060018101905061378f565b5050505092915050565b600082601f8301126137da57600080fd5b81356137ed6137e882615aac565b615a07565b9150818183526020840193506020810190508385602084028201111561381257600080fd5b60005b83811015613842578161382888826139f0565b845260208401935060208301925050600181019050613815565b5050505092915050565b60008135905061385b81615ef0565b92915050565b60008151905061387081615ef0565b92915050565b60008135905061388581615f07565b92915050565b60008151905061389a81615f07565b92915050565b600082601f8301126138b157600080fd5b81356138c46138bf82615ad4565b615a07565b915080825260208301602083018583830111156138e057600080fd5b6138eb838284615e6f565b50505092915050565b600082601f83011261390557600080fd5b815161391861391382615b00565b615a07565b9150808252602083016020830185838301111561393457600080fd5b61393f838284615e7e565b50505092915050565b600082601f83011261395957600080fd5b813561396c61396782615b2c565b615a07565b9150808252602083016020830185838301111561398857600080fd5b613993838284615e6f565b50505092915050565b600082601f8301126139ad57600080fd5b81356139c06139bb82615b58565b615a07565b915080825260208301602083018583830111156139dc57600080fd5b6139e7838284615e6f565b50505092915050565b6000813590506139ff81615f1e565b92915050565b600081519050613a1481615f1e565b92915050565b600081359050613a2981615f35565b92915050565b600081519050613a3e81615f4c565b92915050565b600060208284031215613a5657600080fd5b6000613a6484828501613649565b91505092915050565b60008060408385031215613a8057600080fd5b6000613a8e85828601613649565b9250506020613a9f8582860161384c565b9150509250929050565b60008060408385031215613abc57600080fd5b6000613aca85828601613649565b9250506020613adb858286016139f0565b9150509250929050565b600080600080600060a08688031215613afd57600080fd5b600086013567ffffffffffffffff811115613b1757600080fd5b613b238882890161365e565b955050602086013567ffffffffffffffff811115613b4057600080fd5b613b4c888289016137c9565b945050604086013567ffffffffffffffff811115613b6957600080fd5b613b7588828901613755565b935050606086013567ffffffffffffffff811115613b9257600080fd5b613b9e888289016136e1565b925050608086013567ffffffffffffffff811115613bbb57600080fd5b613bc78882890161399c565b9150509295509295909350565b600060208284031215613be657600080fd5b6000613bf484828501613861565b91505092915050565b600060208284031215613c0f57600080fd5b6000613c1d8482850161388b565b91505092915050565b600060208284031215613c3857600080fd5b600082015167ffffffffffffffff811115613c5257600080fd5b613c5e848285016138f4565b91505092915050565b600060208284031215613c7957600080fd5b6000613c87848285016139f0565b91505092915050565b600060208284031215613ca257600080fd5b6000613cb084828501613a05565b91505092915050565b60008060408385031215613ccc57600080fd5b6000613cda858286016139f0565b9250506020613ceb85828601613649565b9150509250929050565b60008060408385031215613d0857600080fd5b6000613d16858286016139f0565b9250506020613d278582860161384c565b9150509250929050565b600080600080600060a08688031215613d4957600080fd5b6000613d57888289016139f0565b9550506020613d688882890161384c565b9450506040613d7988828901613a1a565b9350506060613d8a88828901613876565b9250506080613d9b88828901613876565b9150509295509295909350565b600060208284031215613dba57600080fd5b6000613dc884828501613a2f565b91505092915050565b6000613ddd8383613e38565b60208301905092915050565b6000613df58383614079565b905092915050565b6000613e0983836141c5565b905092915050565b6000613e1d8383615086565b60208301905092915050565b613e3281615d97565b82525050565b613e4181615d0d565b82525050565b613e5081615d0d565b82525050565b6000613e6182615bee565b613e6b8185615c7a565b9350613e7683615b84565b8060005b83811015613ea7578151613e8e8882613dd1565b9750613e9983615c46565b925050600181019050613e7a565b5085935050505092915050565b6000613ebf82615bf9565b613ec98185615c8b565b935083602082028501613edb85615b94565b8060005b85811015613f175784840389528151613ef88582613de9565b9450613f0383615c53565b925060208a01995050600181019050613edf565b50829750879550505050505092915050565b6000613f3482615c04565b613f3e8185615c9c565b935083602082028501613f5085615ba4565b8060005b85811015613f8c5784840389528151613f6d8582613dfd565b9450613f7883615c60565b925060208a01995050600181019050613f54565b50829750879550505050505092915050565b6000613fa982615c0f565b613fb38185615cad565b9350613fbe83615bb4565b8060005b83811015613fef578151613fd68882613e11565b9750613fe183615c6d565b925050600181019050613fc2565b5085935050505092915050565b61400581615d1f565b82525050565b61401481615d1f565b82525050565b61402381615d2b565b82525050565b61403a61403582615d2b565b615eb1565b82525050565b600061404b82615c25565b6140558185615ccf565b9350614065818560208601615e7e565b61406e81615ebb565b840191505092915050565b600061408482615c1a565b61408e8185615cbe565b935061409e818560208601615e7e565b6140a781615ebb565b840191505092915050565b6000815460018116600081146140cf57600181146140f557614139565b607f60028304166140e08187615ccf565b955060ff198316865260208601935050614139565b600282046141038187615ccf565b955061410e85615bc4565b60005b8281101561413057815481890152600182019150602081019050614111565b80880195505050505b505092915050565b61414a81615da9565b82525050565b61415981615dcd565b82525050565b61416881615df1565b82525050565b61417781615e15565b82525050565b61418681615e27565b82525050565b600061419782615c3b565b6141a18185615cf1565b93506141b1818560208601615e7e565b6141ba81615ebb565b840191505092915050565b60006141d082615c30565b6141da8185615ce0565b93506141ea818560208601615e7e565b6141f381615ebb565b840191505092915050565b600061420982615c30565b6142138185615cf1565b9350614223818560208601615e7e565b61422c81615ebb565b840191505092915050565b600081546001811660008114614254576001811461427a576142be565b607f60028304166142658187615cf1565b955060ff1983168652602086019350506142be565b600282046142888187615cf1565b955061429385615bd9565b60005b828110156142b557815481890152600182019150602081019050614296565b80880195505050505b505092915050565b60006142d3602f83615cf1565b91507f476f7665726e6f724d696c6c733a3a63617374566f746542795369673a20696e60008301527f76616c6964207369676e617475726500000000000000000000000000000000006020830152604082019050919050565b6000614339602c83615cf1565b91507f476f7665726e6f724d696c6c733a3a6e657751756f72756d3a206e6f2063686160008301527f6e676520696e2076616c756500000000000000000000000000000000000000006020830152604082019050919050565b600061439f604483615cf1565b91507f476f7665726e6f724d696c6c733a3a70726f706f73653a2070726f706f73616c60008301527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d60208301527f61746368000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b600061442b602d83615cf1565b91507f476f7665726e6f724d696c6c733a3a6e657751756f72756d3a2074687265736860008301527f6f6c6420746f6f206c61726765000000000000000000000000000000000000006020830152604082019050919050565b6000614491603683615cf1565b91507f476f7665726e6f724d696c6c733a3a63616e63656c3a2063616e6e6f7420636160008301527f6e63656c2065786563757465642070726f706f73616c000000000000000000006020830152604082019050919050565b60006144f7603e83615cf1565b91507f476f7665726e6f724d696c6c733a3a5f5f6578656375746553657454696d656c60008301527f6f636b50656e64696e6741646d696e3a206f6e6c7920677561726469616e00006020830152604082019050919050565b600061455d604583615cf1565b91507f476f7665726e6f724d696c6c733a3a657865637574653a2070726f706f73616c60008301527f2063616e206f6e6c79206265206578656375746564206966206974206973207160208301527f75657565640000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006145e9600283615d02565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000614629602983615cf1565b91507f476f7665726e6f724d696c6c733a3a736574477561726469616e3a206f6e6c7960008301527f20677561726469616e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061468f605983615cf1565b91507f476f7665726e6f724d696c6c733a3a70726f706f73653a206f6e65206c69766560008301527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208301527f20616c72656164792070656e64696e672070726f706f73616c000000000000006040830152606082019050919050565b600061471b603f83615cf1565b91507f476f7665726e6f724d696c6c733a3a70726f706f73653a2070726f706f73657260008301527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c64006020830152604082019050919050565b6000614781601883615cf1565b91507f73657450656e64696e6741646d696e28616464726573732900000000000000006000830152602082019050919050565b60006147c1605883615cf1565b91507f476f7665726e6f724d696c6c733a3a70726f706f73653a206f6e65206c69766560008301527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208301527f20616c7265616479206163746976652070726f706f73616c00000000000000006040830152606082019050919050565b600061484d602d83615cf1565b91507f476f7665726e6f724d696c6c733a3a5f63617374566f74653a20766f7465722060008301527f616c726561647920766f746564000000000000000000000000000000000000006020830152604082019050919050565b60006148b3603f83615cf1565b91507f476f7665726e6f724d696c6c733a3a75706461746550726f706f73657257686960008301527f74656c6973743a2073656e646572206d7573742062652074696d656c6f636b006020830152604082019050919050565b6000614919604f83615cf1565b91507f476f7665726e6f724d696c6c733a3a75706461746550726f706f73616c54687260008301527f6573686f6c643a2073656e646572206d75737420626520676f7620677561726460208301527f69616e206f722074696d656c6f636b00000000000000000000000000000000006040830152606082019050919050565b60006149a5603783615cf1565b91507f476f7665726e6f724d696c6c733a3a61636365707441646d696e3a2073656e6460008301527f6572206d75737420626520676f7620677561726469616e0000000000000000006020830152604082019050919050565b6000614a0b601183615cf1565b91507f6164646974696f6e206f766572666c6f770000000000000000000000000000006000830152602082019050919050565b6000614a4b604383615d02565b91507f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353660008301527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208301527f63742900000000000000000000000000000000000000000000000000000000006040830152604382019050919050565b6000614ad7602783615d02565b91507f42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c207360008301527f7570706f727429000000000000000000000000000000000000000000000000006020830152602782019050919050565b6000614b3d602a83615cf1565b91507f476f7665726e6f724d696c6c733a3a5f63617374566f74653a20766f74696e6760008301527f20697320636c6f736564000000000000000000000000000000000000000000006020830152604082019050919050565b6000614ba3604483615cf1565b91507f476f7665726e6f724d696c6c733a3a71756575653a2070726f706f73616c206360008301527f616e206f6e6c792062652071756575656420696620697420697320737563636560208301527f65646564000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000614c2f602983615cf1565b91507f476f7665726e6f724d696c6c733a3a73746174653a20696e76616c696420707260008301527f6f706f73616c20696400000000000000000000000000000000000000000000006020830152604082019050919050565b6000614c95604483615cf1565b91507f476f7665726e6f724d696c6c733a3a5f71756575654f725265766572743a207060008301527f726f706f73616c20616374696f6e20616c72656164792071756575656420617460208301527f20657461000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000614d21602f83615cf1565b91507f476f7665726e6f724d696c6c733a3a63616e63656c3a2070726f706f7365722060008301527f61626f7665207468726573686f6c6400000000000000000000000000000000006020830152604082019050919050565b6000614d87603c83615cf1565b91507f476f7665726e6f724d696c6c733a3a5f5f717565756553657454696d656c6f6360008301527f6b50656e64696e6741646d696e3a206f6e6c7920677561726469616e000000006020830152604082019050919050565b6000614ded603b83615cf1565b91507f476f7665726e6f724d696c6c733a3a75706461746550726f706f73616c54687260008301527f6573686f6c643a207468726573686f6c6420746f6f206c6172676500000000006020830152604082019050919050565b6000614e53603a83615cf1565b91507f476f7665726e6f724d696c6c733a3a75706461746550726f706f73616c54687260008301527f6573686f6c643a206e6f206368616e676520696e2076616c75650000000000006020830152604082019050919050565b6000614eb9602883615cf1565b91507f476f7665726e6f724d696c6c733a3a70726f706f73653a20746f6f206d616e7960008301527f20616374696f6e730000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614f1f604183615cf1565b91507f476f7665726e6f724d696c6c733a3a6e657751756f72756d3a2073656e64657260008301527f206d75737420626520676f7620677561726469616e206f722074696d656c6f6360208301527f6b000000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000614fab601583615cf1565b91507f7375627472616374696f6e20756e646572666c6f7700000000000000000000006000830152602082019050919050565b6000614feb602c83615cf1565b91507f476f7665726e6f724d696c6c733a3a70726f706f73653a206d7573742070726f60008301527f7669646520616374696f6e7300000000000000000000000000000000000000006020830152604082019050919050565b60608201600082015161505a6000850182613ffc565b50602082015161506d6020850182613ffc565b50604082015161508060408501826150c2565b50505050565b61508f81615d68565b82525050565b61509e81615d68565b82525050565b6150ad81615d72565b82525050565b6150bc81615e5d565b82525050565b6150cb81615d7f565b82525050565b60006150dc826145dc565b91506150e88285614029565b6020820191506150f88284614029565b6020820191508190509392505050565b600061511382614a3e565b9150819050919050565b600061512882614aca565b9150819050919050565b60006020820190506151476000830184613e47565b92915050565b60006040820190506151626000830185613e47565b61516f602083018461400b565b9392505050565b600060a08201905061518b6000830187613e47565b615198602083018661417d565b81810360408301526151a981614774565b905081810360608301526151bd8185614040565b90506151cc6080830184615095565b95945050505050565b60006040820190506151ea6000830185613e47565b6151f76020830184615095565b9392505050565b60006080820190506152136000830187613e47565b6152206020830186615095565b61522d604083018561400b565b61523a60608301846150b3565b95945050505050565b600060a0820190506152586000830188613e47565b6152656020830187615095565b8181036040830152615277818661418c565b9050818103606083015261528b8185614040565b905061529a6080830184615095565b9695505050505050565b600060a0820190506152b96000830188613e47565b6152c66020830187615095565b81810360408301526152d88186614237565b905081810360608301526152ec81856140b2565b90506152fb6080830184615095565b9695505050505050565b6000608082019050818103600083015261531f8187613e56565b905081810360208301526153338186613f9e565b905081810360408301526153478185613f29565b9050818103606083015261535b8184613eb4565b905095945050505050565b600060208201905061537b600083018461400b565b92915050565b6000602082019050615396600083018461401a565b92915050565b60006080820190506153b1600083018761401a565b6153be602083018661401a565b6153cb6040830185615095565b6153d86060830184613e47565b95945050505050565b60006060820190506153f6600083018661401a565b6154036020830185615095565b615410604083018461400b565b949350505050565b600060808201905061542d600083018761401a565b61543a60208301866150a4565b615447604083018561401a565b615454606083018461401a565b95945050505050565b60006020820190506154726000830184614141565b92915050565b600060208201905061548d6000830184614150565b92915050565b60006020820190506154a8600083018461415f565b92915050565b60006020820190506154c3600083018461416e565b92915050565b600060208201905081810360008301526154e381846141fe565b905092915050565b60006020820190508181036000830152615504816142c6565b9050919050565b600060208201905081810360008301526155248161432c565b9050919050565b6000602082019050818103600083015261554481614392565b9050919050565b600060208201905081810360008301526155648161441e565b9050919050565b6000602082019050818103600083015261558481614484565b9050919050565b600060208201905081810360008301526155a4816144ea565b9050919050565b600060208201905081810360008301526155c481614550565b9050919050565b600060208201905081810360008301526155e48161461c565b9050919050565b6000602082019050818103600083015261560481614682565b9050919050565b600060208201905081810360008301526156248161470e565b9050919050565b60006020820190508181036000830152615644816147b4565b9050919050565b6000602082019050818103600083015261566481614840565b9050919050565b60006020820190508181036000830152615684816148a6565b9050919050565b600060208201905081810360008301526156a48161490c565b9050919050565b600060208201905081810360008301526156c481614998565b9050919050565b600060208201905081810360008301526156e4816149fe565b9050919050565b6000602082019050818103600083015261570481614b30565b9050919050565b6000602082019050818103600083015261572481614b96565b9050919050565b6000602082019050818103600083015261574481614c22565b9050919050565b6000602082019050818103600083015261576481614c88565b9050919050565b6000602082019050818103600083015261578481614d14565b9050919050565b600060208201905081810360008301526157a481614d7a565b9050919050565b600060208201905081810360008301526157c481614de0565b9050919050565b600060208201905081810360008301526157e481614e46565b9050919050565b6000602082019050818103600083015261580481614eac565b9050919050565b6000602082019050818103600083015261582481614f12565b9050919050565b6000602082019050818103600083015261584481614f9e565b9050919050565b6000602082019050818103600083015261586481614fde565b9050919050565b60006060820190506158806000830184615044565b92915050565b600060208201905061589b6000830184615095565b92915050565b6000610120820190506158b7600083018c615095565b6158c4602083018b613e29565b81810360408301526158d6818a613e56565b905081810360608301526158ea8189613f9e565b905081810360808301526158fe8188613f29565b905081810360a08301526159128187613eb4565b905061592160c0830186615095565b61592e60e0830185615095565b818103610100830152615941818461418c565b90509a9950505050505050505050565b600061012082019050615967600083018c615095565b615974602083018b613e47565b615981604083018a615095565b61598e6060830189615095565b61599b6080830188615095565b6159a860a0830187615095565b6159b560c0830186615095565b6159c260e083018561400b565b6159d061010083018461400b565b9a9950505050505050505050565b60006040820190506159f36000830185615095565b615a006020830184615095565b9392505050565b6000604051905081810181811067ffffffffffffffff82111715615a2a57600080fd5b8060405250919050565b600067ffffffffffffffff821115615a4b57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115615a7357600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115615a9b57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115615ac357600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115615aeb57600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115615b1757600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115615b4357600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115615b6f57600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000615d1882615d48565b9050919050565b60008115159050919050565b6000819050919050565b6000819050615d4382615ecc565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b6000615da282615e39565b9050919050565b6000615db482615dbb565b9050919050565b6000615dc682615d48565b9050919050565b6000615dd882615ddf565b9050919050565b6000615dea82615d48565b9050919050565b6000615dfc82615e03565b9050919050565b6000615e0e82615d48565b9050919050565b6000615e2082615d35565b9050919050565b6000615e3282615d68565b9050919050565b6000615e4482615e4b565b9050919050565b6000615e5682615d48565b9050919050565b6000615e6882615d7f565b9050919050565b82818337600083830152505050565b60005b83811015615e9c578082015181840152602081019050615e81565b83811115615eab576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b60088110615ed657fe5b50565b615ee281615d0d565b8114615eed57600080fd5b50565b615ef981615d1f565b8114615f0457600080fd5b50565b615f1081615d2b565b8114615f1b57600080fd5b50565b615f2781615d68565b8114615f3257600080fd5b50565b615f3e81615d72565b8114615f4957600080fd5b50565b615f5581615d7f565b8114615f6057600080fd5b5056fea365627a7a723158202b3eea732edf84901a28f9e517c8cb69dc9e9cdb46d34e133d593361e876ba326c6578706572696d656e74616cf564736f6c63430005100040