60806040526000600460006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a6406fc23ac00026000807348b85cc86a08a2bef29febb87e617c1a744dd7bb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260ff16600a0a63b2d05e0002600080739681b8f74129d3a7c5605a89ee007781e1f2a40773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260ff16600a0a63b2d05e000260008073b210182e981ef8c2e566fe8dbc5f4ae3c0ff4c9a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260ff16600a0a640165a0bc000260008073b26c20de800d229da9038f32a56a3756015c60ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260ff16600a0a640165a0bc00026000807328a2a980bc6adb1b45e8f389b2db1608cc4d991f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260ff16600a0a6402cb41780002600080732975733e37f04763fef8428d2448c6f368b90cba73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507348b85cc86a08a2bef29febb87e617c1a744dd7bb73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601260ff16600a0a6406fc23ac00026040518082815260200191505060405180910390a3739681b8f74129d3a7c5605a89ee007781e1f2a40773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601260ff16600a0a63b2d05e00026040518082815260200191505060405180910390a373b210182e981ef8c2e566fe8dbc5f4ae3c0ff4c9a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601260ff16600a0a63b2d05e00026040518082815260200191505060405180910390a373b26c20de800d229da9038f32a56a3756015c60ed73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601260ff16600a0a640165a0bc00026040518082815260200191505060405180910390a37328a2a980bc6adb1b45e8f389b2db1608cc4d991f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601260ff16600a0a640165a0bc00026040518082815260200191505060405180910390a3732975733e37f04763fef8428d2448c6f368b90cba73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601260ff16600a0a6402cb417800026040518082815260200191505060405180910390a3601260ff16600a0a640df84758000260018190555060057328a2a980bc6adb1b45e8f389b2db1608cc4d991f90806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600573b26c20de800d229da9038f32a56a3756015c60ed90806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506005732975733e37f04763fef8428d2448c6f368b90cba90806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620008176005805480602002602001604051908101604052809291908181526020018280548015620007fd57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311620007b2575b50505050506200081d640100000000026401000000009004565b62000b26565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200087c57600080fd5b600090505b8151811015620008cb57620008bd82828151811015156200089e57fe5b90602001906020020151620008cf640100000000026401000000009004565b808060010191505062000881565b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200092c57600080fd5b6200097c816040805190810160405280600981526020017f77686974656c69737400000000000000000000000000000000000000000000008152506200097f640100000000026401000000009004565b50565b62000a0e826003836040518082805190602001908083835b602083101515620009be578051825260208201915060208101905060208303925062000997565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902062000ac864010000000002620011eb179091906401000000009004565b8173ffffffffffffffffffffffffffffffffffffffff167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360005b8381101562000a8957808201518184015260208101905062000a6c565b50505050905090810190601f16801562000ab75780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6112aa8062000b366000396000f3006080604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100f657806318160ddd1461018657806318b919e9146101b1578063217fe6c61461024157806324953eaa146102e2578063286dd3f514610348578063313ce5671461038b5780636b385e09146103bc57806370a08231146103d35780637b9417c81461042a5780638da5cb5b1461046d57806395d89b41146104c45780639b19251a146105545780639f0e622c146105af578063a9059cbb146105de578063c7fac57014610643578063e2ec6ec31461065a575b600080fd5b34801561010257600080fd5b5061010b6106c0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014b578082015181840152602081019050610130565b50505050905090810190601f1680156101785780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019257600080fd5b5061019b6106f9565b6040518082815260200191505060405180910390f35b3480156101bd57600080fd5b506101c6610703565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102065780820151818401526020810190506101eb565b50505050905090810190601f1680156102335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024d57600080fd5b506102c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061073c565b604051808215151515815260200191505060405180910390f35b3480156102ee57600080fd5b50610346600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506107c3565b005b34801561035457600080fd5b50610389600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610860565b005b34801561039757600080fd5b506103a06108fe565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103c857600080fd5b506103d1610903565b005b3480156103df57600080fd5b50610414600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061097c565b6040518082815260200191505060405180910390f35b34801561043657600080fd5b5061046b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109c4565b005b34801561047957600080fd5b50610482610a62565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104d057600080fd5b506104d9610a88565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105195780820151818401526020810190506104fe565b50505050905090810190601f1680156105465780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561056057600080fd5b50610595600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ac1565b604051808215151515815260200191505060405180910390f35b3480156105bb57600080fd5b506105c4610b09565b604051808215151515815260200191505060405180910390f35b3480156105ea57600080fd5b50610629600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b20565b604051808215151515815260200191505060405180910390f35b34801561064f57600080fd5b50610658610b97565b005b34801561066657600080fd5b506106be60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610c10565b005b6040805190810160405280600c81526020017f53454352455420544f4b454e000000000000000000000000000000000000000081525081565b6000600154905090565b6040805190810160405280600981526020017f77686974656c697374000000000000000000000000000000000000000000000081525081565b60006107bb836003846040518082805190602001908083835b60208310151561077a5780518252602082019150602081019050602083039250610755565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020610cad90919063ffffffff16565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561082157600080fd5b600090505b815181101561085c5761084f828281518110151561084057fe5b90602001906020020151610860565b8080600101915050610826565b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108bc57600080fd5b6108fb816040805190810160405280600981526020017f77686974656c6973740000000000000000000000000000000000000000000000815250610d06565b50565b601281565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561095f57600080fd5b6001600460006101000a81548160ff021916908315150217905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a2057600080fd5b610a5f816040805190810160405280600981526020017f77686974656c6973740000000000000000000000000000000000000000000000815250610e3a565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600681526020017f534543524554000000000000000000000000000000000000000000000000000081525081565b6000610b02826040805190810160405280600981526020017f77686974656c697374000000000000000000000000000000000000000000000081525061073c565b9050919050565b6000600460009054906101000a900460ff16905090565b600033600460009054906101000a900460ff161515610b8457610b78816040805190810160405280600981526020017f77686974656c697374000000000000000000000000000000000000000000000081525061073c565b1515610b8357600080fd5b5b610b8e8484610f6e565b91505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bf357600080fd5b6000600460006101000a81548160ff021916908315150217905550565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c6e57600080fd5b600090505b8151811015610ca957610c9c8282815181101515610c8d57fe5b906020019060200201516109c4565b8080600101915050610c73565b5050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610d83826003836040518082805190602001908083835b602083101515610d425780518252602082019150602081019050602083039250610d1d565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902061118d90919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dfc578082015181840152602081019050610de1565b50505050905090810190601f168015610e295780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b610eb7826003836040518082805190602001908083835b602083101515610e765780518252602082019150602081019050602083039250610e51565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206111eb90919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f30578082015181840152602081019050610f15565b50505050905090810190601f168015610f5d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610fab57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610ff857600080fd5b611049826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110dc826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461126290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600082821115151561125757fe5b818303905092915050565b6000818301905082811015151561127557fe5b809050929150505600a165627a7a72305820e4e366087ec17015478d4f985679ea88b655e16c9107ef96e8d3f4f27f072bd80029