0 txs
0 calls
constructor
constructor()
functions
DEFII_TEMPLATE
viewfunction DEFII_TEMPLATE() view returns (address)
getDefiiFor
viewfunction getDefiiFor(address owner, address logic) view returns (address defiiAddress)
operator
viewfunction operator() view returns (address)
owner
viewfunction owner() view returns (address)
createDefiiFor
nonpayablefunction createDefiiFor(address owner, address logic, address incentiveVault)
renounceOwnership
nonpayablefunction renounceOwnership()
setOperator
nonpayablefunction setOperator(address operator_)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
DefiiCreated
event DefiiCreated(address indexed owner, address indexed logic, address defii)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
FailedDeployment
error FailedDeployment()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x608060405234801561000f575f80fd5b50335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610081575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100789190610213565b60405180910390fd5b6100908161010660201b60201c565b503060405161009e906101c7565b6100a89190610213565b604051809103905ff0801580156100c1573d5f803e3d5ffd5b5060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061022c565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61549480610c5883390190565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101fd826101d4565b9050919050565b61020d816101f3565b82525050565b5f6020820190506102265f830184610204565b92915050565b610a1f806102395f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c80638da5cb5b116100595780638da5cb5b146100fe578063b3ab15fb1461011c578063b946636e14610138578063f2fde38b1461015657610086565b8063570ca7351461008a578063574b05a8146100a857806359a5572f146100c4578063715018a6146100f4575b5f80fd5b610092610172565b60405161009f9190610791565b60405180910390f35b6100c260048036038101906100bd91906107d8565b610197565b005b6100de60048036038101906100d99190610828565b6102c2565b6040516100eb9190610791565b60405180910390f35b6100fc610340565b005b610106610353565b6040516101139190610791565b60405180910390f35b61013660048036038101906101319190610866565b61037a565b005b6101406103c5565b60405161014d91906108ec565b60405180910390f35b610170600480360381019061016b9190610866565b6103ea565b005b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6101eb60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685856040516020016101d092919061094a565b6040516020818303038152906040528051906020012061046e565b90508073ffffffffffffffffffffffffffffffffffffffff1663184b95598486856040518463ffffffff1660e01b815260040161022a93929190610975565b5f604051808303815f87803b158015610241575f80fd5b505af1158015610253573d5f803e3d5ffd5b505050508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f5b46e214fecd114a3c080d3fe6c9382401c9e63aa1742d84c6f9ae567208e75e836040516102b49190610791565b60405180910390a350505050565b5f61031660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684846040516020016102fb92919061094a565b60405160208183030381529060405280519060200120610482565b90505f8173ffffffffffffffffffffffffffffffffffffffff163b0361033a575f90505b92915050565b610348610496565b6103515f61051d565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610382610496565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103f2610496565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610462575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016104599190610791565b60405180910390fd5b61046b8161051d565b50565b5f61047a83835f6105de565b905092915050565b5f61048e8383306106d5565b905092915050565b61049e61074b565b73ffffffffffffffffffffffffffffffffffffffff166104bc610353565b73ffffffffffffffffffffffffffffffffffffffff161461051b576104df61074b565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016105129190610791565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f814710156106265747826040517fcf47918100000000000000000000000000000000000000000000000000000000815260040161061d9291906109c2565b60405180910390fd5b763d602d80600a3d3981f3363d3d373d3d3d363d730000008460601b60e81c175f526e5af43d82803e903d91602b57fd5bf38460781b17602052826037600984f590505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106ce576040517fb06ebf3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9392505050565b5f6040518260388201526f5af43d82803e903d91602b57fd5bf3ff6024820152846014820152733d602d80600a3d3981f3363d3d373d3d3d363d7381528360588201526037600c820120607882015273ffffffffffffffffffffffffffffffffffffffff60556043830120169150509392505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61077b82610752565b9050919050565b61078b81610771565b82525050565b5f6020820190506107a45f830184610782565b92915050565b5f80fd5b6107b781610771565b81146107c1575f80fd5b50565b5f813590506107d2816107ae565b92915050565b5f805f606084860312156107ef576107ee6107aa565b5b5f6107fc868287016107c4565b935050602061080d868287016107c4565b925050604061081e868287016107c4565b9150509250925092565b5f806040838503121561083e5761083d6107aa565b5b5f61084b858286016107c4565b925050602061085c858286016107c4565b9150509250929050565b5f6020828403121561087b5761087a6107aa565b5b5f610888848285016107c4565b91505092915050565b5f819050919050565b5f6108b46108af6108aa84610752565b610891565b610752565b9050919050565b5f6108c58261089a565b9050919050565b5f6108d6826108bb565b9050919050565b6108e6816108cc565b82525050565b5f6020820190506108ff5f8301846108dd565b92915050565b5f8160601b9050919050565b5f61091b82610905565b9050919050565b5f61092c82610911565b9050919050565b61094461093f82610771565b610922565b82525050565b5f6109558285610933565b6014820191506109658284610933565b6014820191508190509392505050565b5f6060820190506109885f830186610782565b6109956020830185610782565b6109a26040830184610782565b949350505050565b5f819050919050565b6109bc816109aa565b82525050565b5f6040820190506109d55f8301856109b3565b6109e260208301846109b3565b939250505056fea2646970667358221220f860a1b3688864d89b4863de42e7aaa531433f1c3cf3855ea969853da431771464736f6c634300081a003360a060405234801561000f575f80fd5b506040516154943803806154948339818101604052810190610031919061020b565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610245565b60405180910390fd5b6100b1816100ec60201b60201c565b508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505061025e565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101da826101b1565b9050919050565b6101ea816101d0565b81146101f4575f80fd5b50565b5f81519050610205816101e1565b92915050565b5f602082840312156102205761021f6101ad565b5b5f61022d848285016101f7565b91505092915050565b61023f816101d0565b82525050565b5f6020820190506102585f830184610236565b92915050565b6080516151ed6102a75f395f8181610ae401528181610cce015281816114a70152818161161801528181611be001528181612bce01528181612dee015261319101526151ed5ff3fe60806040526004361061023e575f3560e01c8063824134011161012d578063d3487997116100aa578063f0eef54a1161006e578063f0eef54a146107f1578063f1f684d714610819578063f2fde38b14610855578063f4f3b2001461087d578063fa461e33146108a557610245565b8063d348799714610739578063e086e5ec14610761578063e4d402ad14610777578063e9cbafb0146107a1578063ec34c7c0146107c957610245565b80639f61f4ff116100f15780639f61f4ff1461066d578063a59f3e0c14610697578063b3c49dd8146106bf578063c2ebcd56146106e9578063cfc2db2c1461071157610245565b80638241340114610567578063829b4dc2146105a35780638ced74db146105df5780638da5cb5b1461061b5780638fd09ae11461064557610245565b806333a95606116101bb5780636592bd7d1161017f5780636592bd7d146104ad578063715018a6146104e9578063771c2080146104ff57806377f8bb6d146105275780637e18b7ef1461055157610245565b806333a95606146103f3578063372500ab1461042f5780634b2170f2146104455780635641ec031461046d578063568d25a51461048357610245565b8063179558c311610202578063179558c314610329578063184b9559146103515780632155c276146103795780632348a379146103a15780632dd31000146103c957610245565b806301d4c47a1461024957806307a20b55146102735780630c47cda31461029b578063150b7a02146102c357806315770f92146102ff57610245565b3661024557005b5f80fd5b348015610254575f80fd5b5061025d6108cd565b60405161026a91906139e4565b60405180910390f35b34801561027e575f80fd5b5061029960048036038101906102949190613b4a565b610978565b005b3480156102a6575f80fd5b506102c160048036038101906102bc9190613c15565b610a6c565b005b3480156102ce575f80fd5b506102e960048036038101906102e49190613c81565b610aa5565b6040516102f69190613d3b565b60405180910390f35b34801561030a575f80fd5b50610313610bef565b60405161032091906139e4565b60405180910390f35b348015610334575f80fd5b5061034f600480360381019061034a9190613d54565b610c8e565b005b34801561035c575f80fd5b5061037760048036038101906103729190613d7f565b610f2f565b005b348015610384575f80fd5b5061039f600480360381019061039a9190613dcf565b611015565b005b3480156103ac575f80fd5b506103c760048036038101906103c2919061403a565b611160565b005b3480156103d4575f80fd5b506103dd6114a5565b6040516103ea91906140ef565b60405180910390f35b3480156103fe575f80fd5b5061041960048036038101906104149190614161565b6114c9565b604051610426919061427e565b60405180910390f35b34801561043a575f80fd5b506104436115d8565b005b348015610450575f80fd5b5061046b6004803603810190610466919061429e565b611810565b005b348015610478575f80fd5b50610481611ba0565b005b34801561048e575f80fd5b50610497611dac565b6040516104a491906139e4565b60405180910390f35b3480156104b8575f80fd5b506104d360048036038101906104ce9190613d54565b611e4b565b6040516104e09190614303565b60405180910390f35b3480156104f4575f80fd5b506104fd611e68565b005b34801561050a575f80fd5b5061052560048036038101906105209190613d54565b611e7b565b005b348015610532575f80fd5b5061053b611f63565b60405161054891906139e4565b60405180910390f35b34801561055c575f80fd5b50610565611f69565b005b348015610572575f80fd5b5061058d6004803603810190610588919061431c565b61208a565b60405161059a91906139e4565b60405180910390f35b3480156105ae575f80fd5b506105c960048036038101906105c49190613b4a565b61211d565b6040516105d691906139e4565b60405180910390f35b3480156105ea575f80fd5b5061060560048036038101906106009190614347565b6121d5565b6040516106129190614562565b60405180910390f35b348015610626575f80fd5b5061062f6123f7565b60405161063c9190614591565b60405180910390f35b348015610650575f80fd5b5061066b60048036038101906106669190614654565b61241e565b005b348015610678575f80fd5b50610681612514565b60405161068e9190614591565b60405180910390f35b3480156106a2575f80fd5b506106bd60048036038101906106b8919061431c565b612539565b005b3480156106ca575f80fd5b506106d3612678565b6040516106e09190614591565b60405180910390f35b3480156106f4575f80fd5b5061070f600480360381019061070a9190614161565b61269d565b005b34801561071c575f80fd5b5061073760048036038101906107329190613d54565b6129f8565b005b348015610744575f80fd5b5061075f600480360381019061075a9190614759565b612ae2565b005b34801561076c575f80fd5b50610775612b8e565b005b348015610782575f80fd5b5061078b612cfd565b60405161079891906139e4565b60405180910390f35b3480156107ac575f80fd5b506107c760048036038101906107c29190614759565b612d02565b005b3480156107d4575f80fd5b506107ef60048036038101906107ea919061431c565b612dae565b005b3480156107fc575f80fd5b5061081760048036038101906108129190613d54565b612fc6565b005b348015610824575f80fd5b5061083f600480360381019061083a919061429e565b613011565b60405161084c919061427e565b60405180910390f35b348015610860575f80fd5b5061087b60048036038101906108769190613d54565b6130cd565b005b348015610888575f80fd5b506108a3600480360381019061089e9190614805565b613151565b005b3480156108b0575f80fd5b506108cb60048036038101906108c6919061485a565b613348565b005b5f3073ffffffffffffffffffffffffffffffffffffffff16637e18b7ef6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610913575f80fd5b505af1925050508015610924575060015b610974573d805f8114610952576040519150601f19603f3d011682016040523d82523d5f602084013e610957565b606091505b508080602001905181019061096c91906148df565b915050610975565b5b90565b5f610981611dac565b9050610a2282604051602401610997919061496a565b60405160208183030381529060405263b0e092d260e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b505f610a2c611dac565b90505f8282610a3b91906149b7565b90505f81604051602001610a4f91906139e4565b60405160208183030381529060405290505f815190508060208301fd5b610a74613474565b610a9f81838573ffffffffffffffffffffffffffffffffffffffff166134fb9092919063ffffffff16565b50505050565b5f610aae6123f7565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161480610b9e57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663570ca7356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6f91906149fe565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490614a83565b60405180910390fd5b63150b7a0260e01b9050949350505050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635a0f03c6306040518263ffffffff1660e01b8152600401610c4a9190614591565b602060405180830381865afa158015610c65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8991906148df565b905090565b610c966123f7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610d8957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663570ca7356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5991906149fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610dcb57336040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610dc29190614591565b60405180910390fd5b60035f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4b90614aeb565b60405180910390fd5b610f2b81604051602401610e689190614591565b6040516020818303038152906040527f179558c3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f87575f80fd5b8260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611010826135c6565b505050565b61101d613474565b5f611026611dac565b90506110ff8260405160240161103c919061496a565b6040516020818303038152906040527fb0e092d2000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b505f611109611dac565b905080821180611123575083828261112191906149b7565b105b1561115a576040517f92e7634c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b611168613474565b5f820361117457606491505b5f606461117f611dac565b8461118a9190614b09565b6111949190614b77565b90505f825f01515190505f5b8181101561127c57835f015181815181106111be576111bd614ba7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111fe9190614591565b602060405180830381865afa158015611219573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123d91906148df565b8460200151828151811061125457611253614ba7565b5b602002602001018181516112689190614bd4565b9150818152505080806001019150506111a0565b506113548260405160240161129191906139e4565b6040516020818303038152906040527f7f8661a1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b505f5b81811015611458578360200151818151811061137657611375614ba7565b5b6020026020010151845f0151828151811061139457611393614ba7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113d49190614591565b602060405180830381865afa1580156113ef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061141391906148df565b101561144b576040517f2f35934c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8080600101915050611357565b505f5b8181101561149657611489845f0151828151811061147c5761147b614ba7565b5b6020026020010151613151565b808060010191505061145b565b5061149f6115d8565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f84101580156114dc575060648411155b61151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290614c51565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1663c2ebcd568585856040518463ffffffff1660e01b815260040161155893929190614d05565b5f604051808303815f87803b15801561156f575f80fd5b505af1925050508015611580575060015b6115d0573d805f81146115ae576040519150601f19603f3d011682016040523d82523d5f602084013e6115b3565b606091505b50808060200190518101906115c89190614e09565b9150506115d1565b5b9392505050565b6115e06123f7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156116d357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663570ca7356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561167f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a391906149fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561171557336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161170c9190614591565b60405180910390fd5b61180d60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160240161174a9190614591565b6040516020818303038152906040527fef5cfb8c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b50565b5f8282905067ffffffffffffffff81111561182e5761182d613a26565b5b60405190808252806020026020018201604052801561185c5781602001602082028036833780820191505090505b5090505f5b838390508110156119585783838281811061187f5761187e614ba7565b5b90506020020160208101906118949190613d54565b73ffffffffffffffffffffffffffffffffffffffff166370a0823160025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016118ed9190614591565b602060405180830381865afa158015611908573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061192c91906148df565b82828151811061193f5761193e614ba7565b5b6020026020010181815250508080600101915050611861565b50611a5160025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160240161198e9190614591565b6040516020818303038152906040527fef5cfb8c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b505f5b83839050811015611b7057818181518110611a7257611a71614ba7565b5b6020026020010151848483818110611a8d57611a8c614ba7565b5b9050602002016020810190611aa29190613d54565b73ffffffffffffffffffffffffffffffffffffffff166370a0823160025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611afb9190614591565b602060405180830381865afa158015611b16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b3a91906148df565b611b449190614e50565b828281518110611b5757611b56614ba7565b5b6020026020010181815250508080600101915050611a54565b505f81604051602001611b83919061427e565b60405160208183030381529060405290505f815190508060208301fd5b611ba86123f7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611c9b57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663570ca7356040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6b91906149fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611cdd57336040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611cd49190614591565b60405180910390fd5b611da96040516024016040516020818303038152906040527f5641ec03000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b50565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9b6cf6e306040518263ffffffff1660e01b8152600401611e079190614591565b602060405180830381865afa158015611e22573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e4691906148df565b905090565b6003602052805f5260405f205f915054906101000a900460ff1681565b611e70613474565b611e795f6135c6565b565b611e83613474565b60035f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0390614aeb565b60405180910390fd5b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61271081565b5f611f72611dac565b90506120406040516024016040516020818303038152906040527fe97dcb62000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b505f61204a611dac565b90505f828261205991906149b7565b90505f8160405160200161206d91906139e4565b60405160208183030381529060405290505f815190508060208301fd5b5f803073ffffffffffffffffffffffffffffffffffffffff166301d4c47a6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156120d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120fa91906148df565b9050612710838261210b9190614b09565b6121159190614b77565b915050919050565b5f3073ffffffffffffffffffffffffffffffffffffffff166307a20b55836040518263ffffffff1660e01b8152600401612157919061496a565b5f604051808303815f87803b15801561216e575f80fd5b505af192505050801561217f575060015b6121cf573d805f81146121ad576040519150601f19603f3d011682016040523d82523d5f602084013e6121b2565b606091505b50808060200190518101906121c791906148df565b9150506121d0565b5b919050565b6121dd6139b2565b5f3073ffffffffffffffffffffffffffffffffffffffff166333a9560686856040518363ffffffff1660e01b8152600401612219929190614eec565b5f604051808303815f875af1158015612234573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061225c9190614e09565b90506122666139b2565b835167ffffffffffffffff81111561228157612280613a26565b5b6040519080825280602002602001820160405280156122af5781602001602082028036833780820191505090505b50815f0181905250835167ffffffffffffffff8111156122d2576122d1613a26565b5b6040519080825280602002602001820160405280156123005781602001602082028036833780820191505090505b5081602001819052505f5b84518110156123ea5784818151811061232757612326614ba7565b5b6020026020010151825f0151828151811061234557612344614ba7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612710866123a685848151811061239957612398614ba7565b5b6020026020010151613687565b6123b09190614b09565b6123ba9190614b77565b826020015182815181106123d1576123d0614ba7565b5b602002602001018181525050808060010191505061230b565b5080925050509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b81819050868690501461242f575f80fd5b838390508686905014612440575f80fd5b5f5b8686905081101561250b576124fe87878381811061246357612462614ba7565b5b90506020020160208101906124789190613d54565b86868481811061248b5761248a614ba7565b5b905060200201358585858181106124a5576124a4614ba7565b5b90506020028101906124b79190614f26565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050610a6c565b8080600101915050612442565b50505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612541613474565b5f61254a611dac565b90506126186040516024016040516020818303038152906040527fe97dcb62000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b505f612622611dac565b90508082118061263c575082828261263a91906149b7565b105b15612673576040517f92e7634c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8282905067ffffffffffffffff8111156126bb576126ba613a26565b5b6040519080825280602002602001820160405280156126e95781602001602082028036833780820191505090505b5090505f5b838390508110156127c45783838281811061270c5761270b614ba7565b5b90506020020160208101906127219190613d54565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016127599190614591565b602060405180830381865afa158015612774573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061279891906148df565b8282815181106127ab576127aa614ba7565b5b60200260200101818152505080806001019150506126ee565b505f84036127d157606493505b5f60646127dc611dac565b866127e79190614b09565b6127f19190614b77565b90506128ca8160405160240161280791906139e4565b6040516020818303038152906040527f7f8661a1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b505f5b848490508110156129c8578281815181106128eb576128ea614ba7565b5b602002602001015185858381811061290657612905614ba7565b5b905060200201602081019061291b9190613d54565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016129539190614591565b602060405180830381865afa15801561296e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061299291906148df565b61299c9190614e50565b8382815181106129af576129ae614ba7565b5b60200260200101818152505080806001019150506128cd565b505f826040516020016129db919061427e565b60405160208183030381529060405290505f815190508060208301fd5b612a00613474565b60035f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8190614fd2565b60405180910390fd5b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b612b8784848484604051602401612afc949392919061501c565b60405160208183030381529060405263d348799760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b5050505050565b612b966123f7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c8957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663570ca7356040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c5991906149fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15612ccb57336040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401612cc29190614591565b60405180910390fd5b612cfb47612cd76123f7565b73ffffffffffffffffffffffffffffffffffffffff166136d590919063ffffffff16565b565b606481565b612da784848484604051602401612d1c949392919061501c565b60405160208183030381529060405263e9cbafb060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b5050505050565b612db66123f7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612ea957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663570ca7356040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e7991906149fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15612eeb57336040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401612ee29190614591565b60405180910390fd5b612fc281604051602401612eff91906139e4565b6040516020818303038152906040527fec34c7c0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b5050565b612fce613474565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60603073ffffffffffffffffffffffffffffffffffffffff16634b2170f284846040518363ffffffff1660e01b815260040161304e92919061505a565b5f604051808303815f87803b158015613065575f80fd5b505af1925050508015613076575060015b6130c6573d805f81146130a4576040519150601f19603f3d011682016040523d82523d5f602084013e6130a9565b606091505b50808060200190518101906130be9190614e09565b9150506130c7565b5b92915050565b6130d5613474565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613145575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161313c9190614591565b60405180910390fd5b61314e816135c6565b50565b6131596123f7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561324c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663570ca7356040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061321c91906149fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561328e57336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016132859190614591565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016132c89190614591565b602060405180830381865afa1580156132e3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061330791906148df565b90505f8111156133445761334361331c6123f7565b828473ffffffffffffffffffffffffffffffffffffffff166137c09092919063ffffffff16565b5b5050565b6133ed84848484604051602401613362949392919061508b565b60405160208183030381529060405263fa461e3360e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133f490919063ffffffff16565b5050505050565b60605f808473ffffffffffffffffffffffffffffffffffffffff168460405161341d9190615103565b5f60405180830381855af49150503d805f8114613455576040519150601f19603f3d011682016040523d82523d5f602084013e61345a565b606091505b509150915061346a85838361383f565b9250505092915050565b61347c6138cc565b73ffffffffffffffffffffffffffffffffffffffff1661349a6123f7565b73ffffffffffffffffffffffffffffffffffffffff16146134f9576134bd6138cc565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016134f09190614591565b60405180910390fd5b565b6060814710156135445747826040517fcf47918100000000000000000000000000000000000000000000000000000000815260040161353b929190615119565b60405180910390fd5b5f808573ffffffffffffffffffffffffffffffffffffffff16848660405161356c9190615103565b5f6040518083038185875af1925050503d805f81146135a6576040519150601f19603f3d011682016040523d82523d5f602084013e6135ab565b606091505b50915091506135bb86838361383f565b925050509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808212156136cd57816040517fa8ce44320000000000000000000000000000000000000000000000000000000081526004016136c49190615140565b60405180910390fd5b819050919050565b8047101561371c5747816040517fcf479181000000000000000000000000000000000000000000000000000000008152600401613713929190615119565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516137419061517c565b5f6040518083038185875af1925050503d805f811461377b576040519150601f19603f3d011682016040523d82523d5f602084013e613780565b606091505b50509050806137bb576040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b61383a838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040516024016137f3929190615190565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506138d3565b505050565b6060826138545761384f8261396e565b6138c4565b5f825114801561387a57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b156138bc57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016138b39190614591565b60405180910390fd5b8190506138c5565b5b9392505050565b5f33905090565b5f8060205f8451602086015f885af1806138f2576040513d5f823e3d81fd5b3d92505f519150505f821461390b576001811415613926565b5f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561396857836040517f5274afe700000000000000000000000000000000000000000000000000000000815260040161395f9190614591565b60405180910390fd5b50505050565b5f815111156139805780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806040016040528060608152602001606081525090565b5f819050919050565b6139de816139cc565b82525050565b5f6020820190506139f75f8301846139d5565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613a5c82613a16565b810181811067ffffffffffffffff82111715613a7b57613a7a613a26565b5b80604052505050565b5f613a8d6139fd565b9050613a998282613a53565b919050565b5f67ffffffffffffffff821115613ab857613ab7613a26565b5b613ac182613a16565b9050602081019050919050565b828183375f83830152505050565b5f613aee613ae984613a9e565b613a84565b905082815260208101848484011115613b0a57613b09613a12565b5b613b15848285613ace565b509392505050565b5f82601f830112613b3157613b30613a0e565b5b8135613b41848260208601613adc565b91505092915050565b5f60208284031215613b5f57613b5e613a06565b5b5f82013567ffffffffffffffff811115613b7c57613b7b613a0a565b5b613b8884828501613b1d565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613bba82613b91565b9050919050565b613bca81613bb0565b8114613bd4575f80fd5b50565b5f81359050613be581613bc1565b92915050565b613bf4816139cc565b8114613bfe575f80fd5b50565b5f81359050613c0f81613beb565b92915050565b5f805f60608486031215613c2c57613c2b613a06565b5b5f613c3986828701613bd7565b9350506020613c4a86828701613c01565b925050604084013567ffffffffffffffff811115613c6b57613c6a613a0a565b5b613c7786828701613b1d565b9150509250925092565b5f805f8060808587031215613c9957613c98613a06565b5b5f613ca687828801613bd7565b9450506020613cb787828801613bd7565b9350506040613cc887828801613c01565b925050606085013567ffffffffffffffff811115613ce957613ce8613a0a565b5b613cf587828801613b1d565b91505092959194509250565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613d3581613d01565b82525050565b5f602082019050613d4e5f830184613d2c565b92915050565b5f60208284031215613d6957613d68613a06565b5b5f613d7684828501613bd7565b91505092915050565b5f805f60608486031215613d9657613d95613a06565b5b5f613da386828701613bd7565b9350506020613db486828701613bd7565b9250506040613dc586828701613bd7565b9150509250925092565b5f8060408385031215613de557613de4613a06565b5b5f613df285828601613c01565b925050602083013567ffffffffffffffff811115613e1357613e12613a0a565b5b613e1f85828601613b1d565b9150509250929050565b5f80fd5b5f80fd5b5f67ffffffffffffffff821115613e4b57613e4a613a26565b5b602082029050602081019050919050565b5f80fd5b5f613e72613e6d84613e31565b613a84565b90508083825260208201905060208402830185811115613e9557613e94613e5c565b5b835b81811015613ebe5780613eaa8882613bd7565b845260208401935050602081019050613e97565b5050509392505050565b5f82601f830112613edc57613edb613a0e565b5b8135613eec848260208601613e60565b91505092915050565b5f67ffffffffffffffff821115613f0f57613f0e613a26565b5b602082029050602081019050919050565b5f613f32613f2d84613ef5565b613a84565b90508083825260208201905060208402830185811115613f5557613f54613e5c565b5b835b81811015613f7e5780613f6a8882613c01565b845260208401935050602081019050613f57565b5050509392505050565b5f82601f830112613f9c57613f9b613a0e565b5b8135613fac848260208601613f20565b91505092915050565b5f60408284031215613fca57613fc9613e29565b5b613fd46040613a84565b90505f82013567ffffffffffffffff811115613ff357613ff2613e2d565b5b613fff84828501613ec8565b5f83015250602082013567ffffffffffffffff81111561402257614021613e2d565b5b61402e84828501613f88565b60208301525092915050565b5f80604083850312156140505761404f613a06565b5b5f61405d85828601613c01565b925050602083013567ffffffffffffffff81111561407e5761407d613a0a565b5b61408a85828601613fb5565b9150509250929050565b5f819050919050565b5f6140b76140b26140ad84613b91565b614094565b613b91565b9050919050565b5f6140c88261409d565b9050919050565b5f6140d9826140be565b9050919050565b6140e9816140cf565b82525050565b5f6020820190506141025f8301846140e0565b92915050565b5f80fd5b5f8083601f84011261412157614120613a0e565b5b8235905067ffffffffffffffff81111561413e5761413d614108565b5b60208301915083602082028301111561415a57614159613e5c565b5b9250929050565b5f805f6040848603121561417857614177613a06565b5b5f61418586828701613c01565b935050602084013567ffffffffffffffff8111156141a6576141a5613a0a565b5b6141b28682870161410c565b92509250509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b6141f9816141e7565b82525050565b5f61420a83836141f0565b60208301905092915050565b5f602082019050919050565b5f61422c826141be565b61423681856141c8565b9350614241836141d8565b805f5b8381101561427157815161425888826141ff565b975061426383614216565b925050600181019050614244565b5085935050505092915050565b5f6020820190508181035f8301526142968184614222565b905092915050565b5f80602083850312156142b4576142b3613a06565b5b5f83013567ffffffffffffffff8111156142d1576142d0613a0a565b5b6142dd8582860161410c565b92509250509250929050565b5f8115159050919050565b6142fd816142e9565b82525050565b5f6020820190506143165f8301846142f4565b92915050565b5f6020828403121561433157614330613a06565b5b5f61433e84828501613c01565b91505092915050565b5f805f6060848603121561435e5761435d613a06565b5b5f61436b86828701613c01565b935050602061437c86828701613c01565b925050604084013567ffffffffffffffff81111561439d5761439c613a0a565b5b6143a986828701613ec8565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6143e581613bb0565b82525050565b5f6143f683836143dc565b60208301905092915050565b5f602082019050919050565b5f614418826143b3565b61442281856143bd565b935061442d836143cd565b805f5b8381101561445d57815161444488826143eb565b975061444f83614402565b925050600181019050614430565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61449c816139cc565b82525050565b5f6144ad8383614493565b60208301905092915050565b5f602082019050919050565b5f6144cf8261446a565b6144d98185614474565b93506144e483614484565b805f5b838110156145145781516144fb88826144a2565b9750614506836144b9565b9250506001810190506144e7565b5085935050505092915050565b5f604083015f8301518482035f86015261453b828261440e565b9150506020830151848203602086015261455582826144c5565b9150508091505092915050565b5f6020820190508181035f83015261457a8184614521565b905092915050565b61458b81613bb0565b82525050565b5f6020820190506145a45f830184614582565b92915050565b5f8083601f8401126145bf576145be613a0e565b5b8235905067ffffffffffffffff8111156145dc576145db614108565b5b6020830191508360208202830111156145f8576145f7613e5c565b5b9250929050565b5f8083601f84011261461457614613613a0e565b5b8235905067ffffffffffffffff81111561463157614630614108565b5b60208301915083602082028301111561464d5761464c613e5c565b5b9250929050565b5f805f805f806060878903121561466e5761466d613a06565b5b5f87013567ffffffffffffffff81111561468b5761468a613a0a565b5b61469789828a0161410c565b9650965050602087013567ffffffffffffffff8111156146ba576146b9613a0a565b5b6146c689828a016145aa565b9450945050604087013567ffffffffffffffff8111156146e9576146e8613a0a565b5b6146f589828a016145ff565b92509250509295509295509295565b5f8083601f84011261471957614718613a0e565b5b8235905067ffffffffffffffff81111561473657614735614108565b5b60208301915083600182028301111561475257614751613e5c565b5b9250929050565b5f805f806060858703121561477157614770613a06565b5b5f61477e87828801613c01565b945050602061478f87828801613c01565b935050604085013567ffffffffffffffff8111156147b0576147af613a0a565b5b6147bc87828801614704565b925092505092959194509250565b5f6147d482613bb0565b9050919050565b6147e4816147ca565b81146147ee575f80fd5b50565b5f813590506147ff816147db565b92915050565b5f6020828403121561481a57614819613a06565b5b5f614827848285016147f1565b91505092915050565b614839816141e7565b8114614843575f80fd5b50565b5f8135905061485481614830565b92915050565b5f805f806060858703121561487257614871613a06565b5b5f61487f87828801614846565b945050602061489087828801614846565b935050604085013567ffffffffffffffff8111156148b1576148b0613a0a565b5b6148bd87828801614704565b925092505092959194509250565b5f815190506148d981613beb565b92915050565b5f602082840312156148f4576148f3613a06565b5b5f614901848285016148cb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61493c8261490a565b6149468185614914565b9350614956818560208601614924565b61495f81613a16565b840191505092915050565b5f6020820190508181035f8301526149828184614932565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6149c1826139cc565b91506149cc836139cc565b92508282039050818111156149e4576149e361498a565b5b92915050565b5f815190506149f881613bc1565b92915050565b5f60208284031215614a1357614a12613a06565b5b5f614a20848285016149ea565b91505092915050565b5f82825260208201905092915050565b7f57726f6e67207478206f726967696e00000000000000000000000000000000005f82015250565b5f614a6d600f83614a29565b9150614a7882614a39565b602082019050919050565b5f6020820190508181035f830152614a9a81614a61565b9050919050565b7f4c656e64696e67206973206e6f742077686974656c69737465640000000000005f82015250565b5f614ad5601a83614a29565b9150614ae082614aa1565b602082019050919050565b5f6020820190508181035f830152614b0281614ac9565b9050919050565b5f614b13826139cc565b9150614b1e836139cc565b9250828202614b2c816139cc565b91508282048414831517614b4357614b4261498a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614b81826139cc565b9150614b8c836139cc565b925082614b9c57614b9b614b4a565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f614bde826139cc565b9150614be9836139cc565b9250828201905080821115614c0157614c0061498a565b5b92915050565b7f57726f6e672070657263656e74616765000000000000000000000000000000005f82015250565b5f614c3b601083614a29565b9150614c4682614c07565b602082019050919050565b5f6020820190508181035f830152614c6881614c2f565b9050919050565b5f82825260208201905092915050565b5f819050919050565b5f614c966020840184613bd7565b905092915050565b5f602082019050919050565b5f614cb58385614c6f565b9350614cc082614c7f565b805f5b85811015614cf857614cd58284614c88565b614cdf88826143eb565b9750614cea83614c9e565b925050600181019050614cc3565b5085925050509392505050565b5f604082019050614d185f8301866139d5565b8181036020830152614d2b818486614caa565b9050949350505050565b5f67ffffffffffffffff821115614d4f57614d4e613a26565b5b602082029050602081019050919050565b5f81519050614d6e81614830565b92915050565b5f614d86614d8184614d35565b613a84565b90508083825260208201905060208402830185811115614da957614da8613e5c565b5b835b81811015614dd25780614dbe8882614d60565b845260208401935050602081019050614dab565b5050509392505050565b5f82601f830112614df057614def613a0e565b5b8151614e00848260208601614d74565b91505092915050565b5f60208284031215614e1e57614e1d613a06565b5b5f82015167ffffffffffffffff811115614e3b57614e3a613a0a565b5b614e4784828501614ddc565b91505092915050565b5f614e5a826141e7565b9150614e65836141e7565b925082820390508181125f8412168282135f851215161715614e8a57614e8961498a565b5b92915050565b5f614e9a826143b3565b614ea48185614c6f565b9350614eaf836143cd565b805f5b83811015614edf578151614ec688826143eb565b9750614ed183614402565b925050600181019050614eb2565b5085935050505092915050565b5f604082019050614eff5f8301856139d5565b8181036020830152614f118184614e90565b90509392505050565b5f80fd5b5f80fd5b5f80fd5b5f8083356001602003843603038112614f4257614f41614f1a565b5b80840192508235915067ffffffffffffffff821115614f6457614f63614f1e565b5b602083019250600182023603831315614f8057614f7f614f22565b5b509250929050565b7f416c6c72656164792077686974656c69737465640000000000000000000000005f82015250565b5f614fbc601483614a29565b9150614fc782614f88565b602082019050919050565b5f6020820190508181035f830152614fe981614fb0565b9050919050565b5f614ffb8385614914565b9350615008838584613ace565b61501183613a16565b840190509392505050565b5f60608201905061502f5f8301876139d5565b61503c60208301866139d5565b818103604083015261504f818486614ff0565b905095945050505050565b5f6020820190508181035f830152615073818486614caa565b90509392505050565b615085816141e7565b82525050565b5f60608201905061509e5f83018761507c565b6150ab602083018661507c565b81810360408301526150be818486614ff0565b905095945050505050565b5f81905092915050565b5f6150dd8261490a565b6150e781856150c9565b93506150f7818560208601614924565b80840191505092915050565b5f61510e82846150d3565b915081905092915050565b5f60408201905061512c5f8301856139d5565b61513960208301846139d5565b9392505050565b5f6020820190506151535f83018461507c565b92915050565b50565b5f6151675f836150c9565b915061517282615159565b5f82019050919050565b5f6151868261515c565b9150819050919050565b5f6040820190506151a35f830185614582565b6151b060208301846139d5565b939250505056fea2646970667358221220371415e6fc52b399de67971a7b3320d053bf207de3672e7cc6c514f8f58d923364736f6c634300081a0033