0 txs
5 calls
constructor
No constructor.
functions
create
nonpayablefunction create(uint256 index_, tuple initData_) returns (address plasmaVault)
events
PlasmaVaultCreated
event PlasmaVaultCreated(uint256 index, address plasmaVault, string assetName, string assetSymbol, address underlyingToken)
errors
No errors.
creation bytecode
0x6080604052348015600e575f80fd5b50615f468061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063c4da17f71461002d575b5f80fd5b61004061003b36600461023d565b61005c565b6040516001600160a01b03909116815260200160405180910390f35b5f8160405161006a906100e0565b6100749190610376565b604051809103905ff08015801561008d573d5f803e3d5ffd5b5090507f90174b31d02ce84ed0d5314d805217be1076b2a1adfe296ec2d39ad379ecfa128382845f0151856020015186604001516040516100d2959493929190610464565b60405180910390a192915050565b615a56806104bb83390190565b634e487b7160e01b5f52604160045260245ffd5b60405161010081016001600160401b0381118282101715610124576101246100ed565b60405290565b5f82601f830112610139575f80fd5b81356001600160401b03811115610152576101526100ed565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610180576101806100ed565b604052818152838201602001851015610197575f80fd5b816020850160208301375f918101602001919091529392505050565b80356001600160a01b03811681146101c9575f80fd5b919050565b5f608082840312156101de575f80fd5b604051608081016001600160401b0381118282101715610200576102006100ed565b60405290508061020f836101b3565b81526020838101359082015260408084013590820152610231606084016101b3565b60608201525092915050565b5f806040838503121561024e575f80fd5b8235915060208301356001600160401b0381111561026a575f80fd5b8301610160818603121561027c575f80fd5b610284610101565b81356001600160401b03811115610299575f80fd5b6102a58782850161012a565b82525060208201356001600160401b038111156102c0575f80fd5b6102cc8782850161012a565b6020830152506102de604083016101b3565b60408201526102ef606083016101b3565b606082015261030186608084016101ce565b608082015261031361010083016101b3565b60a082015261032561012083016101b3565b60c082015261033761014083016101b3565b60e082015280925050509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f82516101606020840152610393610180840182610348565b90506020840151601f198483030160408501526103b08282610348565b91505060408401516103cd60608501826001600160a01b03169052565b5060608401516001600160a01b038116608085015250608084015180516001600160a01b0390811660a0860152602082015160c0860152604082015160e08601526060820151166101008501525060a08401516001600160a01b0381166101208501525060c08401516001600160a01b0381166101408501525060e08401516001600160a01b038116610160850152509392505050565b8581526001600160a01b038516602082015260a0604082018190525f9061048d90830186610348565b828103606084015261049f8186610348565b91505060018060a01b0383166080830152969550505050505056fe60c060405234801561000f575f80fd5b50604051615a56380380615a5683398101604081905261002e91610c82565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff1615906001600160401b03165f811580156100775750825b90505f826001600160401b031660011480156100925750303b155b9050811580156100a0575080155b156100be5760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156100ec57845460ff60401b1916680100000000000000001785555b855160208701516100fd9190610484565b604086015161010b9061049a565b6101176002600a610e78565b60a090815260c08701516001600160a01b031660805286519087015160405161019692634a5dc1b760e01b92610152925f1990602401610e86565b60408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b039384161790526080516001600160a01b0316916104ae16565b505f866060015190506103486001600160a01b0316816001600160a01b031663f4a6e4586040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061020b9190610ed3565b6001600160a01b03161461023257604051630dee4f2f60e41b815260040160405180910390fd5b606087015161024090610523565b5f87608001515f01516001600160a01b031663738beeaa6040518060e001604052808b60a001516001600160a01b03168152602001306001600160a01b031681526020018b608001516020015181526020018b608001516040015181526020018b60800151606001516001600160a01b031681526020015f6001600160401b038111156102cf576102cf610b32565b60405190808252806020026020018201604052801561031357816020015b604080518082019091525f80825260208201528152602001906001900390816102ed5790505b5081526020015f60405190808252806020026020018201604052801561035e57816020015b604080518082019091525f80825260208201528152602001906001900390816103385790505b508152506040518263ffffffff1660e01b815260040161037e9190610f3b565b60c0604051808303815f875af115801561039a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103be9190610fbe565b90506103d881604001518260a0015161059860201b60201c565b6103f08160600151826080015161069160201b60201c565b6103f861077c565b60e08801516001600160a01b0316610423576040516302067b8560e41b815260040160405180910390fd5b60e0880151610431906107c8565b5050831561047957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050506111bb565b61048c610836565b6104968282610886565b5050565b6104a2610836565b6104ab816108ef565b50565b60605f80846001600160a01b0316846040516104ca9190611050565b5f60405180830381855af49150503d805f8114610502576040519150601f19603f3d011682016040523d82523d5f602084013e610507565b606091505b509092509050610518858383610972565b925050505b92915050565b807f0d761ae54d86fc3be4f1f2b44ade677efb1c84a85fc6bb1d087dc42f1e319a0080546001600160a01b0319166001600160a01b0392831617905560405190821681527fd51f0f0ead29844497f2889430c7143324b01211d610174de544ac915ae5943f906020015b60405180910390a150565b6001600160a01b0382166105bf57604051630d23cf4160e11b815260040160405180910390fd5b6113888111156105ea57604051630a7e67f960e21b8152600481018290526024015b60405180910390fd5b7f9399757a27831a6cfb6cf4cd5c97a908a2f8f41e95a5952fbf83a04e0528840080546001600160a01b0319166001600160a01b03841617815561062d826109d1565b815461ffff91909116600160a01b0261ffff60a01b19909116178155604080516001600160a01b0385168152602081018490527fb51da3e1921b4e807ca7fadcf4582ef9ebbabde509ec7cecd222ca1fd4375df591015b60405180910390a1505050565b6001600160a01b0382166106b857604051630d23cf4160e11b815260040160405180910390fd5b6101f48111156106de576040516324f8f43160e11b8152600481018290526024016105e1565b7f239dd7e43331d2af55e2a25a6908f3bcec2957025f1459db97dcdc37c0003f0080546001600160a01b0319166001600160a01b038416178155610721826109d1565b815461ffff91909116600160a01b0261ffff60a01b19909116178155604080516001600160a01b0385168152602081018490527f72a8ee4b89f4194ad7e618624c280d66eb07d10b8cd84ab0376c16534413aa409101610684565b7f239dd7e43331d2af55e2a25a6908f3bcec2957025f1459db97dcdc37c0003f006107a642610a03565b815463ffffffff91909116600160b01b0263ffffffff60b01b19909116179055565b807fb37e8684757599da669b8aea811ee2b3693b2582d2c730fab3f4965fa2ec3e1180546001600160a01b0319166001600160a01b0392831617905560405190821681527fd8f38238faf978f3ebd926ef7a8ea95baf4119bb290941e49c523f093ea30d949060200161058d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661088457604051631afcd79f60e31b815260040160405180910390fd5b565b61088e610836565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036108da84826110ea565b50600481016108e983826110ea565b50505050565b6108f7610836565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f8061092384610a33565b9150915081610933576012610935565b805b83546001600160a81b031916600160a01b60ff92909216919091026001600160a01b031916176001600160a01b0394909416939093179091555050565b6060826109875761098282610b09565b6109ca565b815115801561099e57506001600160a01b0384163b155b156109c757604051639996b31560e01b81526001600160a01b03851660048201526024016105e1565b50805b9392505050565b5f61ffff8211156109ff576040516306dfcc6560e41b815260106004820152602481018390526044016105e1565b5090565b5f63ffffffff8211156109ff576040516306dfcc6560e41b815260206004820152602481018390526044016105e1565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290515f918291829182916001600160a01b03871691610a7991611050565b5f60405180830381855afa9150503d805f8114610ab1576040519150601f19603f3d011682016040523d82523d5f602084013e610ab6565b606091505b5091509150818015610aca57506020815110155b15610afd575f81806020019051810190610ae491906111a4565b905060ff8111610afb576001969095509350505050565b505b505f9485945092505050565b805115610b195780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b60405161010081016001600160401b0381118282101715610b6957610b69610b32565b60405290565b5f82601f830112610b7e575f80fd5b81516001600160401b03811115610b9757610b97610b32565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610bc557610bc5610b32565b604052818152838201602001851015610bdc575f80fd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b0381168114610c0e575f80fd5b919050565b5f60808284031215610c23575f80fd5b604051608081016001600160401b0381118282101715610c4557610c45610b32565b604052905080610c5483610bf8565b81526020838101519082015260408084015190820152610c7660608401610bf8565b60608201525092915050565b5f60208284031215610c92575f80fd5b81516001600160401b03811115610ca7575f80fd5b82016101608185031215610cb9575f80fd5b610cc1610b46565b81516001600160401b03811115610cd6575f80fd5b610ce286828501610b6f565b82525060208201516001600160401b03811115610cfd575f80fd5b610d0986828501610b6f565b602083015250610d1b60408301610bf8565b6040820152610d2c60608301610bf8565b6060820152610d3e8560808401610c13565b6080820152610d506101008301610bf8565b60a0820152610d626101208301610bf8565b60c0820152610d746101408301610bf8565b60e0820152949350505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610dd057808504811115610db457610db4610d81565b6001841615610dc257908102905b60019390931c928002610d99565b935093915050565b5f82610de65750600161051d565b81610df257505f61051d565b8160018114610e085760028114610e1257610e2e565b600191505061051d565b60ff841115610e2357610e23610d81565b50506001821b61051d565b5060208310610133831016604e8410600b8410161715610e51575081810a61051d565b610e5d5f198484610d95565b805f1904821115610e7057610e70610d81565b029392505050565b5f6109ca60ff841683610dd8565b606081525f84518060608401528060208701608085015e5f60808285018101919091526001600160a01b03959095166020840152604083019390935250601f909101601f19160101919050565b5f60208284031215610ee3575f80fd5b6109ca82610bf8565b5f8151808452602084019350602083015f5b82811015610f3157815180516001600160a01b031687526020908101518188015260409096019590910190600101610efe565b5093949350505050565b6020815260018060a01b03825116602082015260018060a01b036020830151166040820152604082015160608201526060820151608082015260018060a01b0360808301511660a08201525f60a083015160e060c0840152610fa1610100840182610eec565b905060c0840151601f198483030160e08501526105188282610eec565b5f60c0828403128015610fcf575f80fd5b5060405160c081016001600160401b0381118282101715610ff257610ff2610b32565b604052610ffe83610bf8565b815261100c60208401610bf8565b602082015261101d60408401610bf8565b604082015261102e60608401610bf8565b60608201526080838101519082015260a0928301519281019290925250919050565b5f82518060208501845e5f920191825250919050565b600181811c9082168061107a57607f821691505b60208210810361109857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156110e557805f5260205f20601f840160051c810160208510156110c35750805b601f840160051c820191505b818110156110e2575f81556001016110cf565b50505b505050565b81516001600160401b0381111561110357611103610b32565b611117816111118454611066565b8461109e565b6020601f821160018114611149575f83156111325750848201515b5f19600385901b1c1916600184901b1784556110e2565b5f84815260208120601f198516915b828110156111785787850151825560209485019460019092019101611158565b508482101561119557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156111b4575f80fd5b5051919050565b60805160a0516148576111ff5f395f8181611e9c01528181611ed701528181612d940152612dd101525f81816102c90152818161036b015261374801526148575ff3fe608060405234801561000f575f80fd5b506004361061025c575f3560e01c806394bf804d11610144578063c63d75b6116100c1578063d905777e11610085578063d905777e146105d4578063dd62ed3e146105e7578063e3efd95f146105fa578063e9a2e7781461060d578063ef8b30f714610588578063f538e562146106205761025c565b8063c63d75b614610575578063c6e6f59214610588578063c74b52111461059b578063ce96cb77146105ae578063d79f44eb146105c15761025c565b8063b3d7f6b911610108578063b3d7f6b914610521578063b460af9414610534578063ba08765214610547578063baae8abf1461055a578063bf7e214f1461056d5761025c565b806394bf804d146104c05780639569bf28146104d357806395d89b41146104f3578063a64099d2146104fb578063a9059cbb1461050e5761025c565b8063313ce567116101dd5780634cdad506116101a15780634cdad5061461045957806350921b231461046c5780636e553f651461047f57806370a08231146104925780637a9e5e4b146104a55780638fb36037146104b85761025c565b8063313ce567146103fc57806332293ccc146104165780633887fd781461042b57806338d52e0f1461043e578063402d267d146104465761025c565b80630a28a477116102245780630a28a4771461039a578063150b7a02146103ad57806318160ddd146103d957806323b872dd146103e15780633032403a146103f45761025c565b806301e1d1141461030057806306fdde031461031b57806307a2d13a14610330578063095ea7b3146103435780630971a9d014610366575b5f366060610268610628565b156102895761027561063a565b5060408051602081019091525f81526102f5565b6102f25f368080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929150506107d8565b90505b915050805190602001f35b61030861084c565b6040519081526020015b60405180910390f35b610323610884565b6040516103129190613a40565b61030861033e366004613a52565b610922565b610356610351366004613a7d565b61092d565b6040519015158152602001610312565b61038d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516103129190613aa7565b6103086103a8366004613a52565b61094e565b6103cc6103bb366004613abb565b630a85bd0160e11b95945050505050565b6040516103129190613b52565b610308610a08565b6103566103ef366004613b67565b610a1c565b610308610a3a565b610404610a50565b60405160ff9091168152602001610312565b610429610424366004613b67565b610a59565b005b610308610439366004613a52565b610a72565b61038d610aa4565b610308610454366004613ba5565b610abe565b610308610467366004613a52565b610b3d565b61030861047a366004613bd0565b610bf4565b61030861048d366004613c26565b610d6c565b6103086104a0366004613ba5565b610d94565b6104296104b3366004613ba5565b610dbd565b6103cc610e44565b6103086104ce366004613c26565b610e76565b6104e66104e1366004613d08565b610ee3565b6040516103129190613d94565b610323610f2d565b610308610509366004613dae565b610f49565b61035661051c366004613a7d565b611030565b61030861052f366004613a52565b611046565b610308610542366004613dae565b611052565b610308610555366004613dae565b611349565b610429610568366004613e34565b6113a8565b61038d61165b565b610308610583366004613ba5565b611665565b610308610596366004613a52565b611696565b6104296105a9366004613e34565b6116a1565b6103086105bc366004613ba5565b6118b0565b6104e66105cf366004613d08565b6118c3565b6103086105e2366004613ba5565b611957565b6103086105f5366004613e72565b611961565b610429610608366004613e34565b61199b565b61030861061b366004613e34565b611a49565b610308600281565b5f610631611ac3565b54600114919050565b604080516bffffffffffffffffffffffff193360601b166020808301919091525f80356001600160e01b0319166034840152835180840360180181526038909301845282519282019290922082527fb37e8684757599da669b8aea811ee2b3693b2582d2c730fab3f4965fa2ec3e00905220546001600160a01b0316806106d4576040516325fa6f2760e11b815260040160405180910390fd5b5f61071e5f368080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250506001600160a01b03861692915050611ae7565b905080515f0361072c575050565b5f818060200190518101906107419190613eeb565b9050306001600160a01b031663c74b5211826060015180602001905181019061076a9190613fa7565b6040518263ffffffff1660e01b815260040161078691906140a8565b5f604051808303815f87803b15801561079d575f80fd5b505af11580156107af573d5f803e3d5ffd5b5050506020820151604083015183516107d393506001600160a01b03169190611af4565b505050565b60605f80846001600160a01b0316846040516107f4919061412b565b5f60405180830381855af49150503d805f811461082c576040519150601f19603f3d011682016040523d82523d5f602084013e610831565b606091505b5091509150610841858383611bbc565b925050505b92915050565b5f80610856611c0f565b90505f61086282611dbb565b9050818110610873575f9250505090565b61087d8183614155565b9250505090565b60605f61088f611e4b565b90508060030180546108a090614168565b80601f01602080910402602001604051908101604052809291908181526020018280546108cc90614168565b80156109175780601f106108ee57610100808354040283529160200191610917565b820191905f5260205f20905b8154815290600101906020018083116108fa57829003601f168201915b505050505091505090565b5f610846825f611e6f565b5f80610937611efc565b9050610944818585611f05565b5060019392505050565b5f80610958611f12565b546001600160a01b0316905080156109f8575f816001600160a01b0316631540aa896040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cb91906141a0565b905080156109f6576109ee6109df85611f36565b670de0b6b3a764000083611f42565b949350505050565b505b610a0183611f36565b9392505050565b5f80610a12611e4b565b6002015492915050565b5f610a2f610a28611efc565b5f36612001565b6109ee84848461243e565b5f610a4b610a46611c0f565b611dbb565b905090565b5f610a4b61246b565b60405163036a2f6360e31b815260040160405180910390fd5b5f8181527f656f5ca8c676f20b936e991a840e1130bdd664385322f33b6642ec86729ee6006020526040812054610846565b5f80610aae61248f565b546001600160a01b031692915050565b5f80610ac86124b3565b90505f610ad3610a08565b9050818110610ae557505f9392505050565b5f610aff610af1610a50565b61033e9060ff16600a61429a565b9050610b0b8284614155565b610b16825f196142b9565b1015610b2757505f19949350505050565b610b3461033e8385614155565b95945050505050565b5f80610b47611f12565b546001600160a01b031690508015610beb575f816001600160a01b0316631540aa896040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bba91906141a0565b90508015610be9576109ee61033e85610bdb84670de0b6b3a7640000614155565b670de0b6b3a7640000611f42565b505b610a0183610922565b5f610bfd6124dc565b610c08610a28611efc565b610c10610aa4565b6001600160a01b031663d505accf610c26611efc565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018a90526064810188905260ff8716608482015260a4810186905260c4810185905260e4015f604051808303815f87803b158015610c8f575f80fd5b505af1925050508015610ca0575060015b610d4e5786610cad610aa4565b6001600160a01b031663dd62ed3e610cc3611efc565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610d0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2f91906141a0565b1015610d4e5760405163b78cb0dd60e01b815260040160405180910390fd5b610d588787612526565b9050610d626125a3565b9695505050505050565b5f610d756124dc565b610d80610a28611efc565b610d8a8383612526565b90506108466125a3565b5f80610d9e611e4b565b6001600160a01b039093165f9081526020939093525050604090205490565b5f610dc6611efc565b9050610dd061165b565b6001600160a01b0316816001600160a01b031614610e0b578060405162d1953b60e31b8152600401610e029190613aa7565b60405180910390fd5b816001600160a01b03163b5f03610e3757816040516361798f2f60e11b8152600401610e029190613aa7565b610e40826125c9565b5050565b5f80610e4e61262a565b8054909150600160a01b900460ff16610e67575f610e70565b638fb3603760e01b5b91505090565b5f610e7f6124dc565b610e8a610a28611efc565b825f03610eaa576040516301aeea5160e01b815260040160405180910390fd5b6001600160a01b038216610ed157604051630d23cf4160e11b815260040160405180910390fd5b610ed961264e565b610d8a83836126d7565b604080516020810190915260608152333014610f1257604051635c427cd960e01b815260040160405180910390fd5b610f256001600160a01b038416836107d8565b815292915050565b60605f610f38611e4b565b90508060040180546108a090614168565b5f610f55610a28611efc565b5f610f5e611f12565b546040516316a90b8760e21b81526001600160a01b0390911690635aa42e1c90610f8e90869089906004016142cc565b6020604051808303815f875af1158015610faa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fce91906142f4565b905080610ff15760405163a124f38960e01b815260048101869052602401610e02565b5f610ffb84611957565b90508086111561102457838682604051632e52afbb60e21b8152600401610e029392919061430d565b610d628686865f61272a565b5f61103c610a28611efc565b610a0183836129ed565b5f610846826001611e6f565b5f61105b6124dc565b611066610a28611efc565b835f0361108657604051635da3252f60e11b815260040160405180910390fd5b6001600160a01b03831615806110a357506001600160a01b038216155b156110c157604051630d23cf4160e11b815260040160405180910390fd5b6110c961264e565b5f6110d261084c565b90505f6110dd611f12565b546040805163dc71003960e01b815290516001600160a01b0390921692505f91839163dc7100399160048083019260209291908290030181865afa158015611127573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114b91906141a0565b90505f81156111875761271061116083610922565b61116c9061271161432e565b61117691906142b9565b6111809089614345565b9050611195565b611192600a89614345565b90505b611210816111a1610aa4565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016111cc9190613aa7565b602060405180830381865afa1580156111e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061120b91906141a0565b612a04565b61121984612aa5565b5f611223876118b0565b90508089111561124c57868982604051633fa733bb60e21b8152600401610e029392919061430d565b5f6112568a611696565b60405163362cec2d60e21b8152600481018290529091505f906001600160a01b0387169063d8b3b0b4906024016020604051808303815f875af115801561129f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c391906141a0565b90506112cf8183614155565b97506112f86112dc611efc565b8b8b6112e785610922565b8f6112f29190614155565b8c612b27565b801561133a57886001600160a01b0316611310611efc565b6001600160a01b031614611330576113308961132a611efc565b83612bde565b61133a8982612c28565b50505050505050610a016125a3565b5f6113526124dc565b61135d610a28611efc565b5f61136783611957565b90508085111561139057828582604051632e52afbb60e21b8152600401610e029392919061430d565b61139d858585600161272a565b915050610a016125a3565b6113b06124dc565b6113bb610a28611efc565b805f816001600160401b038111156113d5576113d5613c54565b6040519080825280602002602001820160405280156113fe578160200160208202803683370190505b5090505f805f61140c61084c565b9050611416612c5c565b5f5b858110156116335761149088888381811061143557611435614358565b9050602002810190611447919061436c565b611455906020810190613ba5565b6001600160a01b03165f9081527f48932b860eb451ad240d4fe2b46522e5a0ac079d201fe50d4e0be078c75b54006020526040902054151590565b6114ad57604051632356a16d60e01b815260040160405180910390fd5b8787828181106114bf576114bf614358565b90506020028101906114d1919061436c565b6114df906020810190613ba5565b6001600160a01b031663454dab236040518163ffffffff1660e01b8152600401602060405180830381865afa15801561151a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061153e91906141a0565b925061154a8584612c69565b15155f0361157e578285858151811061156557611565614358565b60209081029190910101528361157a8161438a565b9450505b61162a88888381811061159357611593614358565b90506020028101906115a5919061436c565b6115b39060208101906143a2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508c92508b91508590508181106115fb576115fb614358565b905060200281019061160d919061436c565b61161b906020810190613ba5565b6001600160a01b0316906107d8565b50600101611418565b5061163c612cce565b61164584612cd7565b61164e81612aa5565b5050505050610e406125a3565b5f80610aae61262a565b5f8061166f6124b3565b90505f61167a610a08565b905081811061168c57505f9392505050565b6109ee8183614155565b5f610846825f612d7a565b3033146116c357336040516329507dbf60e01b8152600401610e029190613aa7565b805f816001600160401b038111156116dd576116dd613c54565b604051908082528060200260200182016040528015611706578160200160208202803683370190505b5090505f805f5b8481101561189e5761172a87878381811061143557611435614358565b61174757604051632356a16d60e01b815260040160405180910390fd5b86868281811061175957611759614358565b905060200281019061176b919061436c565b611779906020810190613ba5565b6001600160a01b031663454dab236040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d891906141a0565b91506117e48483612c69565b15155f0361181857818484815181106117ff576117ff614358565b6020908102919091010152826118148161438a565b9350505b61189587878381811061182d5761182d614358565b905060200281019061183f919061436c565b61184d9060208101906143a2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508b92508a91508590508181106115fb576115fb614358565b5060010161170d565b506118a883612cd7565b505050505050565b5f6108466118bd83610d94565b5f611e6f565b6040805160208101909152606081526001600160a01b0383166118f95760405163d92e233d60e01b815260040160405180910390fd5b5f61194184846040516024016119109291906143e4565b60408051601f198184030181529190526020810180516001600160e01b03166312ad37e560e31b1790523090612df6565b9050808060200190518101906109ee9190614407565b5f61084682610d94565b5f8061196b611e4b565b6001600160a01b039485165f90815260019190910160209081526040808320959096168252939093525050205490565b6119a36124dc565b6119ae610a28611efc565b805f5b81811015611a3f57611a368484838181106119ce576119ce614358565b90506020028101906119e0919061436c565b6119ee9060208101906143a2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508892508791508590508181106115fb576115fb614358565b506001016119b1565b5050610e406125a3565b5f611a55610a28611efc565b5f829003611a6c57611a6561084c565b9050610846565b5f611a7561084c565b9050611ab28484808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250612cd792505050565b611abb81612aa5565b6109ee61084c565b7f054644eb87255c1c6a2d10801735f52fa3b9d6e4477dbed74914d03844ab660090565b6060610a0183835f612e4a565b5f836001600160a01b031663095ea7b38484604051602401611b179291906142cc565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050509050611b508482612ed9565b611bb657611bac84856001600160a01b031663095ea7b3865f604051602401611b7a9291906142cc565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612f76565b611bb68482612f76565b50505050565b606082611bd157611bcc82612fce565b610a01565b8151158015611be857506001600160a01b0384163b155b15611c085783604051639996b31560e01b8152600401610e029190613aa7565b5080610a01565b5f80611c427f08c469289c3f85d9b575f3ae9be6831541ff770a06ea135aa343a4de7c962d00546001600160a01b031690565b90506001600160a01b03811615611d4157806001600160a01b031663722713f76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cb391906141a0565b611cbb612ffa565b611cc3610aa4565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611cee9190613aa7565b602060405180830381865afa158015611d09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2d91906141a0565b611d379190614345565b610e709190614345565b611d49612ffa565b611d51610aa4565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611d7c9190613aa7565b602060405180830381865afa158015611d97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3791906141a0565b5f80611dc5613021565b6020810151909150429061ffff161580611de75750604082015163ffffffff16155b80611dfc5750816040015163ffffffff168111155b15611e0a57505f9392505050565b6109ee826040015163ffffffff1682611e239190614155565b611e2d908661432e565b602084015161ffff16611e466127106301e1338061432e565b611f42565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0090565b5f80611e79610a08565b90508015611ecf57611eca611e8c61084c565b611e97906001614345565b611ec17f000000000000000000000000000000000000000000000000000000000000000084614345565b8691908661309c565b6109ee565b6109ee8460017f00000000000000000000000000000000000000000000000000000000000000008661309c565b5f610a4b6130df565b6107d38383836001613105565b7fb37e8684757599da669b8aea811ee2b3693b2582d2c730fab3f4965fa2ec3e1190565b5f610846826001612d7a565b5f838302815f1985870982811083820303915050805f03611f7657838281611f6c57611f6c6142a5565b0492505050610a01565b808411611f965760405163227bc15360e01b815260040160405180910390fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f61200f600482848661448e565b612018916144b5565b90505f806001600160e01b031983166323b872dd60e01b0361214d575f612042366004818461448e565b81019061204f9190613b67565b5050905061205b61165b565b6001600160a01b03166377d973708230876040518463ffffffff1660e01b815260040161208a939291906144eb565b60408051808303815f875af11580156120a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120c99190614518565b50506120d361165b565b6001600160a01b03166377d973708830876040518463ffffffff1660e01b8152600401612102939291906144eb565b60408051808303815f875af115801561211d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121419190614518565b90935091506123789050565b636e553f6560e01b6001600160e01b03198416148061217c57506394bf804d60e01b6001600160e01b03198416145b1561222a575f61218f366004818461448e565b81019061219c9190613c26565b9150506121a761165b565b6001600160a01b03166377d973708230876040518463ffffffff1660e01b81526004016121d6939291906144eb565b60408051808303815f875af11580156121f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122159190614518565b505061214161222261165b565b8830876131e6565b6001600160e01b031983166350921b2360e01b0361226c575f612250366004818461448e565b81019061225d9190613bd0565b505050509150506121a761165b565b635d043b2960e11b6001600160e01b03198416148061229b5750632d182be560e21b6001600160e01b03198416145b156122c7575f6122ae366004818461448e565b8101906122bb9190613dae565b9250505061205b61165b565b6001600160e01b0319831663a9059cbb60e01b0361235f576122e761165b565b6001600160a01b03166377d973708730866040518463ffffffff1660e01b8152600401612316939291906144eb565b60408051808303815f875af1158015612331573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123559190614518565b9092509050612378565b61237261236a61165b565b8730866131e6565b90925090505b816124355763ffffffff81161561241b575f61239261262a565b805460ff60a01b1916600160a01b17815590506123ad61165b565b6001600160a01b03166394c7d7ee8888886040518463ffffffff1660e01b81526004016123dc9392919061454a565b5f604051808303815f87803b1580156123f3575f80fd5b505af1158015612405573d5f803e3d5ffd5b5050825460ff60a01b1916909255506124359050565b8560405162d1953b60e31b8152600401610e029190613aa7565b6118a8836132d8565b5f80612448611efc565b9050612455858285612bde565b612460858585613380565b506001949350505050565b5f8061247561248f565b905060028154610e709190600160a01b900460ff16614589565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090565b5f7f0f070392f17d5f958cc1ac31867dabecfc5c9758b4a419a200803226d7155d005b54919050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080546001190161252057604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f825f036125475760405163182b250f60e01b815260040160405180910390fd5b6001600160a01b03821661256e57604051630d23cf4160e11b815260040160405180910390fd5b61257661264e565b5f61258184846133dd565b9050805f03610a015760405163459a698560e11b815260040160405180910390fd5b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6125d261262a565b80546001600160a01b0319166001600160a01b0384161781556040519091507f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9061261e908490613aa7565b60405180910390a15050565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0090565b5f8061266061265b611c0f565b613430565b915091505f61266e82611696565b9050805f0361267c57505050565b612686600161345a565b612690838261347e565b6126995f61345a565b60408051838152602081018390527fbb92eb7521ac4e9e56f7e75ea06a10cbc121c444e5d175fff5e8e0bc9e804937910160405180910390a1505050565b5f806126e283611665565b90508084111561270b5782848260405163284ff66760e01b8152600401610e029392919061430d565b5f61271585611046565b90506109ee612722611efc565b8583886134b2565b5f845f0361274b5760405163f10cc93760e01b815260040160405180910390fd5b6001600160a01b038416158061276857506001600160a01b038316155b1561278657604051630d23cf4160e11b815260040160405180910390fd5b61278e61264e565b5f805f61279961084c565b90505f6127a4611f12565b5f015f9054906101000a90046001600160a01b031690505f61281f826001600160a01b031663dc7100396040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061033e91906141a0565b90505f5b600a8110156128d0576128358b610922565b955061283f610aa4565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161286a9190613aa7565b602060405180830381865afa158015612885573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128a991906141a0565b94506128c8826128b88861352d565b6128c29190614345565b86612a04565b600101612823565b506128da83612aa5565b86612903576128e88a610922565b95506128fe6128f5611efc565b8a8a898e612b27565b6129e0565b60405163362cec2d60e21b8152600481018b90525f906001600160a01b0384169063d8b3b0b4906024016020604051808303815f875af1158015612949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061296d91906141a0565b90505f61297a828d614155565b905061298581610922565b975061299b612992611efc565b8c8c8b85612b27565b81156129dd57896001600160a01b03166129b3611efc565b6001600160a01b0316146129d3576129d38a6129cd611efc565b84612bde565b6129dd8a83612c28565b50505b5050505050949350505050565b5f806129f7611efc565b9050610944818585613380565b815f03612a0f575050565b808210610e40575f736333f1f68cfb959b2245989df3f6e0ffaa30507c6357e31b68612a39610aa4565b85856040518463ffffffff1660e01b8152600401612a599392919061430d565b5f60405180830381865af4158015612a73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612a9a91908101906145a2565b90506107d381612cd7565b5f612aae61084c565b905081811015612abc575050565b5f80612ae6612ac9610a08565b612ad1610a50565b60ff166002612ae1610af1610a50565b61354d565b90925090506001600160a01b0382161580612aff575080155b15612b0a5750505050565b612b14600161345a565b612b1e828261347e565b611bb65f61345a565b5f612b3061248f565b9050836001600160a01b0316866001600160a01b031614612b5657612b56848784612bde565b612b608483612c28565b8054612b76906001600160a01b031686856136c6565b836001600160a01b0316856001600160a01b0316876001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8686604051612bce929190918252602082015260400190565b60405180910390a4505050505050565b5f612be98484611961565b90505f198114611bb65781811015612c1a57828183604051637dc7a0d960e11b8152600401610e029392919061430d565b611bb684848484035f613105565b6001600160a01b038216612c51575f604051634b637e8f60e11b8152600401610e029190613aa7565b610e40825f836136ec565b6001612c66611ac3565b55565b5f805b8351811015612cc757838181518110612c8757612c87614358565b60200260200101515f0315612cc75782848281518110612ca957612ca9614358565b602002602001015103612cbf5760019150612cc7565b600101612c6c565b5092915050565b5f612c66611ac3565b5f736333f1f68cfb959b2245989df3f6e0ffaa30507c639712748783612cfb610aa4565b612d03610a50565b60026040518563ffffffff1660e01b8152600401612d249493929190614628565b5f60405180830381865af4158015612d3e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d65919081019061468d565b9050612d6f611c0f565b8152610e408161376e565b5f80612d84610a08565b90508015612dcc57611eca612db97f000000000000000000000000000000000000000000000000000000000000000083614345565b612dc161084c565b611ec1906001614345565b6109ee7f00000000000000000000000000000000000000000000000000000000000000008561432e565b60605f80846001600160a01b031684604051612e12919061412b565b5f60405180830381855afa9150503d805f811461082c576040519150601f19603f3d011682016040523d82523d5f602084013e610831565b606081471015612e6f573060405163cd78605960e01b8152600401610e029190613aa7565b5f80856001600160a01b03168486604051612e8a919061412b565b5f6040518083038185875af1925050503d805f8114612ec4576040519150601f19603f3d011682016040523d82523d5f602084013e612ec9565b606091505b5091509150610d62868383611bbc565b5f805f846001600160a01b031684604051612ef4919061412b565b5f604051808303815f865af19150503d805f8114612f2d576040519150601f19603f3d011682016040523d82523d5f602084013e612f32565b606091505b5091509150818015612f5c575080511580612f5c575080806020019051810190612f5c91906142f4565b80156108415750505050506001600160a01b03163b151590565b5f612f8a6001600160a01b03841683611ae7565b905080515f14158015612fae575080806020019051810190612fac91906142f4565b155b156107d35782604051635274afe760e01b8152600401610e029190613aa7565b805115612fde5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b5f7f24e02552e88772b8e8fd15f3e6699ba530635ffc6b52322da922b0b497a773006124d6565b604080516060810182525f80825260208201819052918101919091527f239dd7e43331d2af55e2a25a6908f3bcec2957025f1459db97dcdc37c0003f006040805160608101825291546001600160a01b0381168352600160a01b810461ffff166020840152600160b01b900463ffffffff1690820152919050565b5f806130a9868686611f42565b90506130b4836138d8565b80156130cf57505f84806130ca576130ca6142a5565b868809115b15610b3457610d62600182614345565b5f806130e9613904565b90506001600160a01b038116613100573391505090565b919050565b5f61310e611e4b565b90506001600160a01b038516613139575f60405163e602df0560e01b8152600401610e029190613aa7565b6001600160a01b038416613162575f604051634a1406b160e11b8152600401610e029190613aa7565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156131df57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516131d691815260200190565b60405180910390a35b5050505050565b5f805f80876001600160a01b0316878787604051602401613209939291906144eb565b60408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161323e919061412b565b5f60405180830381855afa9150503d805f8114613276576040519150601f19603f3d011682016040523d82523d5f602084013e61327b565b606091505b509150915081156132cd5760408151106132ad57808060200190518101906132a39190614518565b90945092506132cd565b60208151106132cd57808060200190518101906132ca91906142f4565b93505b505094509492505050565b6001600160e01b031981165f9081527fd334d8b26e68f82b7df26f2f64b6ffd2aaae5e2fc0e8c144c4b3598dcddd4b0060205260409020546001600160a01b031680613322575050565b6107d3632dc7895260e01b8360405160240161333e9190613b52565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038316906107d8565b6001600160a01b0383166133a9575f604051634b637e8f60e11b8152600401610e029190613aa7565b6001600160a01b0382166133d2575f60405163ec442f0560e01b8152600401610e029190613aa7565b6107d38383836136ec565b5f806133e883610abe565b90508084111561341157828482604051633c8097d960e11b8152600401610e029392919061430d565b5f61341b85611696565b90506109ee613428611efc565b8587846134b2565b5f805f61343b613021565b80519350905061344a84611dbb565b915061345461392c565b50915091565b7faef487a7a52e82ae7bbc470b42be72a1d3c066fb83773bf99cce7e6a7df2f90055565b6001600160a01b0382166134a7575f60405163ec442f0560e01b8152600401610e029190613aa7565b610e405f83836136ec565b5f6134bb61248f565b80549091506134d5906001600160a01b0316863086613978565b6134df848361347e565b836001600160a01b0316856001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d785856040516131d6929190918252602082015260400190565b5f61354361353c60028461432e565b60646139a0565b6108469083614345565b5f805f6135af6040805180820182525f80825260209182015281518083019092527f9399757a27831a6cfb6cf4cd5c97a908a2f8f41e95a5952fbf83a04e05288400546001600160a01b038116835261ffff600160a01b909104169082015290565b9050805f01516001600160a01b031663ea26266c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136149190614781565b6001600160a01b0316639617bcca61362b866139ab565b60208401518a9061363c8a8c614155565b6040516001600160e01b031960e087901b1681526001600160801b039094166004850152602484019290925261ffff166044830152606482015260840160408051808303815f875af1158015613694573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136b8919061479c565b909890975095505050505050565b6107d383846001600160a01b031663a9059cbb8585604051602401611b7a9291906142cc565b611bb66332293ccc60e01b84848460405160240161370c939291906147c8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906107d8565b5f80527fc2733c187287f795e2e6e84d35552a190e774125367241c3e99e955f4babf0006020527ff1a5acf64f330322c7b96c9822a41f340e067e2cefe46839a37cd61f2a91150c546137be5750565b6020810151515f805b82811015611bb6576138377fc2733c187287f795e2e6e84d35552a190e774125367241c3e99e955f4babf0005f015f8660200151848151811061380c5761380c614358565b60200260200101515f015181526020019081526020015f2054855f0151670de0b6b3a7640000611f42565b91508360200151818151811061384f5761384f614358565b6020026020010151602001518210156138d0578360200151818151811061387857613878614358565b60200260200101515f01518460200151828151811061389957613899614358565b6020908102919091018101510151604051638f56989d60e01b81526004810192909252602482015260448101839052606401610e02565b6001016137c7565b5f60028260038111156138ed576138ed6147ec565b6138f79190614800565b60ff166001149050919050565b5f807f68262fe08792a71a690eb5eb2de15df1b0f463dd786bf92bdbd5f0f0d1ae8b00610aae565b7f239dd7e43331d2af55e2a25a6908f3bcec2957025f1459db97dcdc37c0003f00613956426139e2565b815463ffffffff91909116600160b01b0263ffffffff60b01b19909116179055565b611bb684856001600160a01b03166323b872dd868686604051602401611b7a939291906147c8565b5f610a0182846142b9565b5f6001600160801b038211156139de576040516306dfcc6560e41b81526080600482015260248101839052604401610e02565b5090565b5f63ffffffff8211156139de576040516306dfcc6560e41b81526020600482015260248101839052604401610e02565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a016020830184613a12565b5f60208284031215613a62575f80fd5b5035919050565b6001600160a01b0381168114612ff7575f80fd5b5f8060408385031215613a8e575f80fd5b8235613a9981613a69565b946020939093013593505050565b6001600160a01b0391909116815260200190565b5f805f805f60808688031215613acf575f80fd5b8535613ada81613a69565b94506020860135613aea81613a69565b93506040860135925060608601356001600160401b03811115613b0b575f80fd5b8601601f81018813613b1b575f80fd5b80356001600160401b03811115613b30575f80fd5b886020828401011115613b41575f80fd5b959894975092955050506020019190565b6001600160e01b031991909116815260200190565b5f805f60608486031215613b79575f80fd5b8335613b8481613a69565b92506020840135613b9481613a69565b929592945050506040919091013590565b5f60208284031215613bb5575f80fd5b8135610a0181613a69565b803560ff81168114613100575f80fd5b5f805f805f8060c08789031215613be5575f80fd5b863595506020870135613bf781613a69565b945060408701359350613c0c60608801613bc0565b9598949750929560808101359460a0909101359350915050565b5f8060408385031215613c37575f80fd5b823591506020830135613c4981613a69565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b0381118282101715613c8a57613c8a613c54565b60405290565b604080519081016001600160401b0381118282101715613c8a57613c8a613c54565b604051601f8201601f191681016001600160401b0381118282101715613cda57613cda613c54565b604052919050565b5f6001600160401b03821115613cfa57613cfa613c54565b50601f01601f191660200190565b5f8060408385031215613d19575f80fd5b8235613d2481613a69565b915060208301356001600160401b03811115613d3e575f80fd5b8301601f81018513613d4e575f80fd5b8035613d61613d5c82613ce2565b613cb2565b818152866020838501011115613d75575f80fd5b816020840160208301375f602083830101528093505050509250929050565b602081525f82516020808401526109ee6040840182613a12565b5f805f60608486031215613dc0575f80fd5b833592506020840135613dd281613a69565b91506040840135613de281613a69565b809150509250925092565b5f8083601f840112613dfd575f80fd5b5081356001600160401b03811115613e13575f80fd5b6020830191508360208260051b8501011115613e2d575f80fd5b9250929050565b5f8060208385031215613e45575f80fd5b82356001600160401b03811115613e5a575f80fd5b613e6685828601613ded565b90969095509350505050565b5f8060408385031215613e83575f80fd5b8235613e8e81613a69565b91506020830135613c4981613a69565b5f82601f830112613ead575f80fd5b8151613ebb613d5c82613ce2565b818152846020838601011115613ecf575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215613efb575f80fd5b81516001600160401b03811115613f10575f80fd5b820160808185031215613f21575f80fd5b613f29613c68565b8151613f3481613a69565b81526020820151613f4481613a69565b60208201526040828101519082015260608201516001600160401b03811115613f6b575f80fd5b613f7786828501613e9e565b606083015250949350505050565b5f6001600160401b03821115613f9d57613f9d613c54565b5060051b60200190565b5f60208284031215613fb7575f80fd5b81516001600160401b03811115613fcc575f80fd5b8201601f81018413613fdc575f80fd5b8051613fea613d5c82613f85565b8082825260208201915060208360051b85010192508683111561400b575f80fd5b602084015b8381101561409d5780516001600160401b0381111561402d575f80fd5b85016040818a03601f19011215614042575f80fd5b61404a613c90565b602082015161405881613a69565b815260408201516001600160401b03811115614072575f80fd5b6140818b602083860101613e9e565b6020830152508085525050602083019250602081019050614010565b509695505050505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561411f57868503603f19018452815180516001600160a01b0316865260209081015160409187018290529061410990870182613a12565b95505060209384019391909101906001016140ce565b50929695505050505050565b5f82518060208501845e5f920191825250919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561084657610846614141565b600181811c9082168061417c57607f821691505b60208210810361419a57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156141b0575f80fd5b5051919050565b6001815b60018411156141f2578085048111156141d6576141d6614141565b60018416156141e457908102905b60019390931c9280026141bb565b935093915050565b5f8261420857506001610846565b8161421457505f610846565b816001811461422a576002811461423457614250565b6001915050610846565b60ff84111561424557614245614141565b50506001821b610846565b5060208310610133831016604e8410600b8410161715614273575081810a610846565b61427f5f1984846141b7565b805f190482111561429257614292614141565b029392505050565b5f610a0183836141fa565b634e487b7160e01b5f52601260045260245ffd5b5f826142c7576142c76142a5565b500490565b6001600160a01b03929092168252602082015260400190565b80518015158114613100575f80fd5b5f60208284031215614304575f80fd5b610a01826142e5565b6001600160a01b039390931683526020830191909152604082015260600190565b808202811582820484141761084657610846614141565b8082018082111561084657610846614141565b634e487b7160e01b5f52603260045260245ffd5b5f8235603e19833603018112614380575f80fd5b9190910192915050565b5f6001820161439b5761439b614141565b5060010190565b5f808335601e198436030181126143b7575f80fd5b8301803591506001600160401b038211156143d0575f80fd5b602001915036819003821315613e2d575f80fd5b6001600160a01b03831681526040602082018190525f906109ee90830184613a12565b5f60208284031215614417575f80fd5b81516001600160401b0381111561442c575f80fd5b82016020818503121561443d575f80fd5b604051602081016001600160401b038111828210171561445f5761445f613c54565b60405281516001600160401b03811115614477575f80fd5b61448386828501613e9e565b825250949350505050565b5f808585111561449c575f80fd5b838611156144a8575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015612cc7576001600160e01b031960049490940360031b84901b1690921692915050565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f8060408385031215614529575f80fd5b614532836142e5565b9150602083015163ffffffff81168114613c49575f80fd5b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b60ff818116838216019081111561084657610846614141565b5f602082840312156145b2575f80fd5b81516001600160401b038111156145c7575f80fd5b8201601f810184136145d7575f80fd5b80516145e5613d5c82613f85565b8082825260208201915060208360051b850101925086831115614606575f80fd5b6020840193505b82841015610d6257835182526020938401939091019061460d565b608080825285519082018190525f90602087019060a0840190835b81811015614661578351835260209384019390920191600101614643565b50506001600160a01b03969096166020840152505060ff92831660408201529116606090910152919050565b5f6020828403121561469d575f80fd5b81516001600160401b038111156146b2575f80fd5b8201604081850312156146c3575f80fd5b6146cb613c90565b8151815260208201516001600160401b038111156146e7575f80fd5b80830192505084601f8301126146fb575f80fd5b8151614709613d5c82613f85565b8082825260208201915060208360061b86010192508783111561472a575f80fd5b6020850194505b828510156147715760408589031215614748575f80fd5b614750613c90565b85518152602080870151818301529083526040909501949190910190614731565b6020840152509095945050505050565b5f60208284031215614791575f80fd5b8151610a0181613a69565b5f80604083850312156147ad575f80fd5b82516147b881613a69565b6020939093015192949293505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b5f52602160045260245ffd5b5f60ff831680614812576148126142a5565b8060ff8416069150509291505056fea264697066735822122024d17adb396e39bad5d51f3d7ce19d7be5ff8b82ae8ea5ea4bbdb4ef3c12392864736f6c634300081a0033a2646970667358221220122d47e7b6c3217430170f622bb1d1e7cf0345eea80e0432fed8ac19da1cd5a664736f6c634300081a0033