60606040526012600a0a63017d784002600655341561001a57fe5b5b33600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600654600781905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fad7411e10a57bdb7d0d052a65b3c68a8434cb538299819b206347a564e4a19046006546040518082815260200191505060405180910390a25b5b611634806101506000396000f30060606040523615610126576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305fefda71461012857806306fdde0314610151578063095ea7b3146101ea57806318160ddd1461024157806323b872dd14610267578063313ce567146102dd578063378dc3dc1461030357806342966c68146103295780634b7503341461036157806354fd4d501461038757806370a082311461042057806379cc67901461046a5780637c94830b146104c15780638620410b14610513578063893d20e81461053957806395d89b411461058b578063a6f2ae3a14610624578063a9059cbb14610642578063dd62ed3e14610699578063e4849b3214610702578063e724529c14610722578063f0141d8414610763575bfe5b341561013057fe5b61014f6004808035906020019091908035906020019091905050610789565b005b341561015957fe5b61016161079c565b60405180806020018281038252838181518152602001915080519060200190808383600083146101b0575b8051825260208311156101b05760208201915060208101905060208303925061018c565b505050905090810190601f1680156101dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101f257fe5b610227600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506107d6565b604051808215151515815260200191505060405180910390f35b341561024957fe5b610251610864565b6040518082815260200191505060405180910390f35b341561026f57fe5b6102c3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061086a565b604051808215151515815260200191505060405180910390f35b34156102e557fe5b6102ed610b3c565b6040518082815260200191505060405180910390f35b341561030b57fe5b610313610b41565b6040518082815260200191505060405180910390f35b341561033157fe5b6103476004808035906020019091905050610b47565b604051808215151515815260200191505060405180910390f35b341561036957fe5b610371610c4b565b6040518082815260200191505060405180910390f35b341561038f57fe5b610397610c51565b60405180806020018281038252838181518152602001915080519060200190808383600083146103e6575b8051825260208311156103e6576020820191506020810190506020830392506103c2565b505050905090810190601f1680156104125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561042857fe5b610454600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c8b565b6040518082815260200191505060405180910390f35b341561047257fe5b6104a7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cd5565b604051808215151515815260200191505060405180910390f35b34156104c957fe5b6104d1610e64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561051b57fe5b610523610e8a565b6040518082815260200191505060405180910390f35b341561054157fe5b610549610e90565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561059357fe5b61059b610ebb565b60405180806020018281038252838181518152602001915080519060200190808383600083146105ea575b8051825260208311156105ea576020820191506020810190506020830392506105c6565b505050905090810190601f1680156106165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61062c610ef5565b6040518082815260200191505060405180910390f35b341561064a57fe5b61067f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110c0565b604051808215151515815260200191505060405180910390f35b34156106a157fe5b6106ec600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112a7565b6040518082815260200191505060405180910390f35b341561070a57fe5b610720600480803590602001909190505061132f565b005b341561072a57fe5b610761600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035151590602001909190505061151b565b005b341561076b57fe5b6107736115c9565b6040518082815260200191505060405180910390f35b81600881905550806009819055505b5050565b604060405190810160405280600681526020017f4b4149524f53000000000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190505b92915050565b60075481565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610905575081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b801561098d575081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156109995750600082115b15610b305781600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050610b35565b600090505b9392505050565b601281565b60065481565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610b965760006000fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816007600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600190505b919050565b60085481565b604060405190810160405280600381526020017f312e30000000000000000000000000000000000000000000000000000000000081525081565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d245760006000fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610dae5760006000fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816007600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600190505b92915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b90565b604060405190810160405280600381526020017f4b5258000000000000000000000000000000000000000000000000000000000081525081565b600060095434811515610f0457fe5b0490508060016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610f765760006000fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508060016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38090505b90565b600060008373ffffffffffffffffffffffffffffffffffffffff1614156110ea57600090506112a1565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611183575081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b801561118f5750600082115b1561129c5781600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190506112a1565b600090505b92915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b92915050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561137c5760006000fd5b8060016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc611467600854846115d390919063ffffffff16565b9081150290604051809050600060405180830381858888f1935050505015156114905760006000fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50565b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a582604051808215151515815260200191505060405180910390a25b5050565b6000601290505b90565b60006000828402905060008414806115f557508284828115156115f257fe5b04145b15156115fd57fe5b8091505b50929150505600a165627a7a72305820bcec28846a070490a6592129087126537c7773b488eeaa5b1011187342b2a61a0029