0x608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630988ca8c1461012d578063217fe6c6146101b657806322ae82801461025757806327e235e3146102825780632e1c7851146102d957806347e7ef2414610306578063497fb5b91461035357806366829b161461037e57806370a08231146103c157806386f70a3e1461041857806388cee87e1461044757806398c445b1146104d0578063b25fa92c146104fb578063beccafbe14610584578063bf58390314610614578063bff99c6c1461063f578063d391014b14610696578063eb1cb8b614610726578063efc908a114610751578063f3fef3a3146107fa578063fc0c546a14610847578063ff05121f1461089e575b600080fd5b34801561013957600080fd5b506101b4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506108cd565b005b3480156101c257600080fd5b5061023d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094e565b604051808215151515815260200191505060405180910390f35b34801561026357600080fd5b5061026c6109d5565b6040518082815260200191505060405180910390f35b34801561028e57600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109db565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610304600480360381019080803590602001909291905050506109f3565b005b34801561031257600080fd5b50610351600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a6a565b005b34801561035f57600080fd5b50610368610b12565b6040518082815260200191505060405180910390f35b34801561038a57600080fd5b506103bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b18565b005b3480156103cd57600080fd5b50610402600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b9b565b6040518082815260200191505060405180910390f35b34801561042457600080fd5b5061042d610be4565b604051808215151515815260200191505060405180910390f35b34801561045357600080fd5b506104ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610bf1565b005b3480156104dc57600080fd5b506104e5610c3e565b6040518082815260200191505060405180910390f35b34801561050757600080fd5b50610582600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c44565b005b34801561059057600080fd5b50610599610c91565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105d95780820151818401526020810190506105be565b50505050905090810190601f1680156106065780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062057600080fd5b50610629610cca565b6040518082815260200191505060405180910390f35b34801561064b57600080fd5b50610654610e1f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106a257600080fd5b506106ab610e45565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106eb5780820151818401526020810190506106d0565b50505050905090810190601f1680156107185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561073257600080fd5b5061073b610e7e565b6040518082815260200191505060405180910390f35b34801561075d57600080fd5b506107f86004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610e84565b005b34801561080657600080fd5b50610845600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fc6565b005b34801561085357600080fd5b5061085c611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108aa57600080fd5b506108b36110b6565b604051808215151515815260200191505060405180910390f35b61094a826000836040518082805190602001908083835b60208310151561090957805182526020820191506020810190506020830392506108e4565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206110c390919063ffffffff16565b5050565b60006109cd836000846040518082805190602001908083835b60208310151561098c5780518252602082019150602081019050602083039250610967565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206110dc90919063ffffffff16565b905092915050565b60065481565b60016020528060005260406000206000915090505481565b610a32336040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506108cd565b600081111515610a4157600080fd5b4281111515610a4f57600080fd5b6003548114151515610a6057600080fd5b8060038190555050565b610aa9336040805190810160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525061094e565b80610aef5750610aee336040805190810160405280600c81526020017f62616e6b5f6d616e61676572000000000000000000000000000000000000000081525061094e565b5b1515610afa57600080fd5b610b048282611135565b610b0e8282611197565b5050565b60045481565b610b57336040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506108cd565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600554421015905090565b610c30336040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506108cd565b610c3a828261120e565b5050565b60055481565b610c83336040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506108cd565b610c8d828261135f565b5050565b6040805190810160405280600c81526020017f62616e6b5f6d616e61676572000000000000000000000000000000000000000081525081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610ddf57600080fd5b505af1158015610df3573d6000803e3d6000fd5b505050506040513d6020811015610e0957600080fd5b8101908080519060200190929190505050905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525081565b60035481565b6000610ec5336040805190810160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525061094e565b80610f0b5750610f0a336040805190810160405280600c81526020017f62616e6b5f6d616e61676572000000000000000000000000000000000000000081525061094e565b5b1515610f1657600080fd5b60008351111515610f2657600080fd5b81518351141515610f3657600080fd5b600090505b8251811015610fc157610f7c8382815181101515610f5557fe5b906020019060200201518383815181101515610f6d57fe5b90602001906020020151611135565b610fb48382815181101515610f8d57fe5b906020019060200201518383815181101515610fa557fe5b90602001906020020151611197565b8080600101915050610f3b565b505050565b611005336040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506108cd565b61100f82826114b0565b611024816004546115be90919063ffffffff16565b60048190555061103482826115dc565b61103e8282611675565b8173ffffffffffffffffffffffffffffffffffffffff167f68577e4d693c1b056a60bc4e39438810239a0bfe64869c4eb7e3baebb5f65634826040518082815260200191505060405180910390a25050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600354421015905090565b6110cd82826110dc565b15156110d857600080fd5b5050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561117157600080fd5b60008111151561118057600080fd5b611188610be4565b151561119357600080fd5b5050565b6111ac816006546115be90919063ffffffff16565b6006819055506111bc82826116ea565b8173ffffffffffffffffffffffffffffffffffffffff167f20b3fc91390f6ceba342f697a9490734680fd3556633f40efa146f1dbe79d05f826040518082815260200191505060405180910390a25050565b61128b826000836040518082805190602001908083835b60208310151561124a5780518252602082019150602081019050602083039250611225565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902061178390919063ffffffff16565b7fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611320578082015181840152602081019050611305565b50505050905090810190601f16801561134d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b6113dc826000836040518082805190602001908083835b60208310151561139b5780518252602082019150602081019050602083039250611376565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206117e190919063ffffffff16565b7fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b7004898282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611471578082015181840152602081019050611456565b50505050905090810190601f16801561149e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156114ec57600080fd5b600081141515156114fc57600080fd5b60008111151561150b57600080fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561155957600080fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156115a757600080fd5b6115af6110b6565b15156115ba57600080fd5b5050565b60008082840190508381101515156115d257fe5b8091505092915050565b61162e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461183f90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6116e6600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611858909392919063ffffffff16565b5050565b61173c81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115be90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600082821115151561184d57fe5b818303905092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561192f57600080fd5b505af1158015611943573d6000803e3d6000fd5b505050506040513d602081101561195957600080fd5b8101908080519060200190929190505050151561197257fe5b505050505600a165627a7a72305820b59ace32f8f6608787ed517db5418b97909e5a295950fd39ee284267189a8bad0029
0x60806040523480156200001157600080fd5b5060405160808062001d888339810180604052810190808051906020019092919080519060200190929190805190602001909291908051906020019092919050505081848483620000a7336040805190810160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525062000210640100000000026401000000009004565b620000f7336040805190810160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525062000210640100000000026401000000009004565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000811115156200014957600080fd5b42811115156200015857600080fd5b80600381905550506000811115156200017057600080fd5b42811115156200017f57600080fd5b8060058190555050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620001c457600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050620003d4565b6200029f826000836040518082805190602001908083835b6020831015156200024f578051825260208201915060208101905060208303925062000228565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206200037664010000000002620017e1179091906401000000009004565b7fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b7004898282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156200033657808201518184015260208101905062000319565b50505050905090810190601f168015620003645780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6119a480620003e46000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630988ca8c1461012d578063217fe6c6146101b657806322ae82801461025757806327e235e3146102825780632e1c7851146102d957806347e7ef2414610306578063497fb5b91461035357806366829b161461037e57806370a08231146103c157806386f70a3e1461041857806388cee87e1461044757806398c445b1146104d0578063b25fa92c146104fb578063beccafbe14610584578063bf58390314610614578063bff99c6c1461063f578063d391014b14610696578063eb1cb8b614610726578063efc908a114610751578063f3fef3a3146107fa578063fc0c546a14610847578063ff05121f1461089e575b600080fd5b34801561013957600080fd5b506101b4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506108cd565b005b3480156101c257600080fd5b5061023d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094e565b604051808215151515815260200191505060405180910390f35b34801561026357600080fd5b5061026c6109d5565b6040518082815260200191505060405180910390f35b34801561028e57600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109db565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610304600480360381019080803590602001909291905050506109f3565b005b34801561031257600080fd5b50610351600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a6a565b005b34801561035f57600080fd5b50610368610b12565b6040518082815260200191505060405180910390f35b34801561038a57600080fd5b506103bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b18565b005b3480156103cd57600080fd5b50610402600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b9b565b6040518082815260200191505060405180910390f35b34801561042457600080fd5b5061042d610be4565b604051808215151515815260200191505060405180910390f35b34801561045357600080fd5b506104ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610bf1565b005b3480156104dc57600080fd5b506104e5610c3e565b6040518082815260200191505060405180910390f35b34801561050757600080fd5b50610582600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c44565b005b34801561059057600080fd5b50610599610c91565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105d95780820151818401526020810190506105be565b50505050905090810190601f1680156106065780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062057600080fd5b50610629610cca565b6040518082815260200191505060405180910390f35b34801561064b57600080fd5b50610654610e1f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106a257600080fd5b506106ab610e45565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106eb5780820151818401526020810190506106d0565b50505050905090810190601f1680156107185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561073257600080fd5b5061073b610e7e565b6040518082815260200191505060405180910390f35b34801561075d57600080fd5b506107f86004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610e84565b005b34801561080657600080fd5b50610845600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fc6565b005b34801561085357600080fd5b5061085c611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108aa57600080fd5b506108b36110b6565b604051808215151515815260200191505060405180910390f35b61094a826000836040518082805190602001908083835b60208310151561090957805182526020820191506020810190506020830392506108e4565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206110c390919063ffffffff16565b5050565b60006109cd836000846040518082805190602001908083835b60208310151561098c5780518252602082019150602081019050602083039250610967565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206110dc90919063ffffffff16565b905092915050565b60065481565b60016020528060005260406000206000915090505481565b610a32336040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506108cd565b600081111515610a4157600080fd5b4281111515610a4f57600080fd5b6003548114151515610a6057600080fd5b8060038190555050565b610aa9336040805190810160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525061094e565b80610aef5750610aee336040805190810160405280600c81526020017f62616e6b5f6d616e61676572000000000000000000000000000000000000000081525061094e565b5b1515610afa57600080fd5b610b048282611135565b610b0e8282611197565b5050565b60045481565b610b57336040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506108cd565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600554421015905090565b610c30336040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506108cd565b610c3a828261120e565b5050565b60055481565b610c83336040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506108cd565b610c8d828261135f565b5050565b6040805190810160405280600c81526020017f62616e6b5f6d616e61676572000000000000000000000000000000000000000081525081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610ddf57600080fd5b505af1158015610df3573d6000803e3d6000fd5b505050506040513d6020811015610e0957600080fd5b8101908080519060200190929190505050905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525081565b60035481565b6000610ec5336040805190810160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525061094e565b80610f0b5750610f0a336040805190810160405280600c81526020017f62616e6b5f6d616e61676572000000000000000000000000000000000000000081525061094e565b5b1515610f1657600080fd5b60008351111515610f2657600080fd5b81518351141515610f3657600080fd5b600090505b8251811015610fc157610f7c8382815181101515610f5557fe5b906020019060200201518383815181101515610f6d57fe5b90602001906020020151611135565b610fb48382815181101515610f8d57fe5b906020019060200201518383815181101515610fa557fe5b90602001906020020151611197565b8080600101915050610f3b565b505050565b611005336040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506108cd565b61100f82826114b0565b611024816004546115be90919063ffffffff16565b60048190555061103482826115dc565b61103e8282611675565b8173ffffffffffffffffffffffffffffffffffffffff167f68577e4d693c1b056a60bc4e39438810239a0bfe64869c4eb7e3baebb5f65634826040518082815260200191505060405180910390a25050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600354421015905090565b6110cd82826110dc565b15156110d857600080fd5b5050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561117157600080fd5b60008111151561118057600080fd5b611188610be4565b151561119357600080fd5b5050565b6111ac816006546115be90919063ffffffff16565b6006819055506111bc82826116ea565b8173ffffffffffffffffffffffffffffffffffffffff167f20b3fc91390f6ceba342f697a9490734680fd3556633f40efa146f1dbe79d05f826040518082815260200191505060405180910390a25050565b61128b826000836040518082805190602001908083835b60208310151561124a5780518252602082019150602081019050602083039250611225565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902061178390919063ffffffff16565b7fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611320578082015181840152602081019050611305565b50505050905090810190601f16801561134d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b6113dc826000836040518082805190602001908083835b60208310151561139b5780518252602082019150602081019050602083039250611376565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206117e190919063ffffffff16565b7fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b7004898282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611471578082015181840152602081019050611456565b50505050905090810190601f16801561149e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156114ec57600080fd5b600081141515156114fc57600080fd5b60008111151561150b57600080fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561155957600080fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156115a757600080fd5b6115af6110b6565b15156115ba57600080fd5b5050565b60008082840190508381101515156115d257fe5b8091505092915050565b61162e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461183f90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6116e6600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611858909392919063ffffffff16565b5050565b61173c81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115be90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600082821115151561184d57fe5b818303905092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561192f57600080fd5b505af1158015611943573d6000803e3d6000fd5b505050506040513d602081101561195957600080fd5b8101908080519060200190929190505050151561197257fe5b505050505600a165627a7a72305820b59ace32f8f6608787ed517db5418b97909e5a295950fd39ee284267189a8bad0029000000000000000000000000000000000000000000000000000000005bab66b0000000000000000000000000000000000000000000000000000000005d8b6f5c000000000000000000000000fb8adbf28c06c2febb73e6972251875a8a8469b800000000000000000000000087cd2e0879f96e24eda280a3f5aa42fb7589c31d