60606040526000600160146101000a81548160ff02191690831515021790555034156200002b57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600481526020017f4e4153480000000000000000000000000000000000000000000000000000000081525060059080519060200190620000b8929190620001fa565b506040805190810160405280600d81526020017f4e454f574f524c442043415348000000000000000000000000000000000000008152506004908051906020019062000106929190620001fa565b506012600660006101000a81548160ff021916908360ff160217905550600660009054906101000a900460ff1660ff16600a0a64174876e80002600781905550600754600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040518082815260200191505060405180910390a3620002a9565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023d57805160ff19168380011785556200026e565b828001600101855582156200026e579182015b828111156200026d57825182559160200191906001019062000250565b5b5090506200027d919062000281565b5090565b620002a691905b80821115620002a257600081600090555060010162000288565b5090565b90565b611bc180620002b96000396000f300606060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461010c578063095ea7b31461019a57806318160ddd146101f457806323b872dd1461021d578063313ce567146102965780633f4ba83a146102c557806342966c68146102f25780635c975abb1461032d57806370a082311461035a57806379ba5097146103a75780638456cb59146103bc5780638da5cb5b146103e957806395d89b411461043e578063a9059cbb146104cc578063be45fd6214610526578063d4ee1d90146105c3578063dc39d06d14610618578063dd62ed3e14610672578063f2fde38b146106de575b600080fd5b341561011757600080fd5b61011f610717565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561015f578082015181840152602081019050610144565b50505050905090810190601f16801561018c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101a557600080fd5b6101da600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506107bf565b604051808215151515815260200191505060405180910390f35b34156101ff57600080fd5b6102076108cd565b6040518082815260200191505060405180910390f35b341561022857600080fd5b61027c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108d7565b604051808215151515815260200191505060405180910390f35b34156102a157600080fd5b6102a9610b9e565b604051808260ff1660ff16815260200191505060405180910390f35b34156102d057600080fd5b6102d8610bb5565b604051808215151515815260200191505060405180910390f35b34156102fd57600080fd5b6103136004808035906020019091905050610c7b565b604051808215151515815260200191505060405180910390f35b341561033857600080fd5b610340610d72565b604051808215151515815260200191505060405180910390f35b341561036557600080fd5b610391600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d85565b6040518082815260200191505060405180910390f35b34156103b257600080fd5b6103ba610dce565b005b34156103c757600080fd5b6103cf610f6d565b604051808215151515815260200191505060405180910390f35b34156103f457600080fd5b6103fc611033565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561044957600080fd5b610451611058565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610491578082015181840152602081019050610476565b50505050905090810190601f1680156104be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104d757600080fd5b61050c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611100565b604051808215151515815260200191505060405180910390f35b341561053157600080fd5b6105a9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061115b565b604051808215151515815260200191505060405180910390f35b34156105ce57600080fd5b6105d66111ae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561062357600080fd5b610658600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111d4565b604051808215151515815260200191505060405180910390f35b341561067d57600080fd5b6106c8600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611313565b6040518082815260200191505060405180910390f35b34156106e957600080fd5b610715600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061139a565b005b61071f611b6d565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107b55780601f1061078a576101008083540402835291602001916107b5565b820191906000526020600020905b81548152906001019060200180831161079857829003601f168201915b5050505050905090565b6000600160149054906101000a900460ff161515156107dd57600080fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600754905090565b6000600160149054906101000a900460ff161515156108f557600080fd5b61098482600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461143990919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a5682600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461143990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610aeb82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461145290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600660009054906101000a900460ff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c1257600080fd5b600160149054906101000a900460ff161515610c2d57600080fd5b6000600160146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a16001905090565b60008082111515610c8b57600080fd5b81610c9533610d85565b10151515610ca257600080fd5b610cbd82610caf33610d85565b61143990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d158260075461143990919063ffffffff16565b6007819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b600160149054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2a57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fca57600080fd5b600160149054906101000a900460ff16151515610fe657600080fd5b60018060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a16001905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611060611b6d565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110f65780601f106110cb576101008083540402835291602001916110f6565b820191906000526020600020905b8154815290600101906020018083116110d957829003601f168201915b5050505050905090565b600061110a611b81565b600160149054906101000a900460ff1615151561112657600080fd5b61112f8461146e565b156111465761113f848483611481565b9150611154565b61115184848361188d565b91505b5092915050565b6000600160149054906101000a900460ff1615151561117957600080fd5b6111828461146e565b1561119957611192848484611481565b90506111a7565b6111a484848461188d565b90505b9392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123157600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156112f457600080fd5b5af1151561130157600080fd5b50505060405180519050905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113f557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561144757fe5b818303905092915050565b6000818301905082811015151561146557fe5b80905092915050565b600080823b905060008111915050919050565b6000806000808692508273ffffffffffffffffffffffffffffffffffffffff16630f24f5c8336114b088611aa2565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040805180830381600087803b151561153357600080fd5b5af1151561154057600080fd5b5050506040518051906020018051905080925081935050508161156233610d85565b101561156d57600080fd5b6115888261157a33610d85565b61143990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115e6826115d883610d85565b61145290919063ffffffff16565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff1663c0ee0b8a3384886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156116eb5780820151818401526020810190506116d0565b50505050905090810190601f1680156117185780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b151561173857600080fd5b5af1151561174557600080fd5b5050508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a38673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1688886040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611844578082015181840152602081019050611829565b50505050905090810190601f1680156118715780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3600193505050509392505050565b60008261189933610d85565b10156118a457600080fd5b6118bf836118b133610d85565b61143990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061191d8361190f86610d85565b61145290919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a5c578082015181840152602081019050611a41565b50505050905090810190601f168015611a895780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3600190509392505050565b6000806000809250600091505b8351821015611b66578382815181101515611ac657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004905060308110158015611b48575060398111155b15611b595760308103600a84020192505b8180600101925050611aaf565b5050919050565b602060405190810160405280600081525090565b6020604051908101604052806000815250905600a165627a7a72305820c247d5d4f170795cf9692f9265fd6b279f24bb85bab01de85a746c141d33583b0029