0x60806040526001600560146101000a81548160ff0219169083151502179055506001600560156101000a81548160ff0219169083151502179055507382af49447d8a07e3bd95bd0d56f35241523fbab1600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561009b57600080fd5b506100b86100ad6100bd60201b60201c565b6100c560201b60201c565b610189565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b760405160405180910390a35050565b611e01806101986000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806366e5f2501161006657806366e5f250146101085780637974dfa9146101245780638da5cb5b14610140578063c31e78321461015e578063cfdecd431461018f57610093565b80631e6ee34a146100985780633247986c146100b45780634d8c2e5f146100d0578063640e7c5b146100ec575b600080fd5b6100b260048036038101906100ad9190611679565b6101ab565b005b6100ce60048036038101906100c991906116b9565b61029b565b005b6100ea60048036038101906100e5919061171c565b6103ab565b005b6101066004803603810190610101919061175c565b610488565b005b610122600480360381019061011d9190611789565b61053a565b005b61013e600480360381019061013991906116b9565b610697565b005b61014861072b565b60405161015591906117eb565b60405180910390f35b61017860048036038101906101739190611806565b610754565b60405161018692919061187c565b60405180910390f35b6101a960048036038101906101a4919061175c565b610a0a565b005b6101b3610abc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023790611902565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6102a3610abc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032790611902565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361039f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039690611994565b60405180910390fd5b6103a881610ac4565b50565b6103b3610abc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043790611902565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b610490610abc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461051d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051490611902565b60405180910390fd5b80600560156101000a81548160ff02191690831515021790555050565b610542610abc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c690611902565b60405180910390fd5b82600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b733d3b18e926a2ef267891afaeb16ec1b54df9f41573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106e357600080fd5b600b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806001151561076487610b88565b1515141580156107b2575060018060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b6107bb57600080fd5b60011515600560149054906101000a900460ff161515148061082a5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b806108825750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b61088b57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156108fb575060011515600560159054906101000a900460ff161515145b1561090957610908610c9d565b5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015610979575060011515600560159054906101000a900460ff161515145b1561098757610986610d33565b5b600084905060011515600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036109fa576109f78585610d8390919063ffffffff16565b93505b8084925092505094509492505050565b610a12610abc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9690611902565b60405180910390fd5b80600560146101000a81548160ff02191690831515021790555050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b760405160405180910390a35050565b60008060405180604001604052806edba7f30ba877d1d66e5324858b127873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737ff4cb3f587b4f0b84d26805155890066373973673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250905060005b6002811015610c91578373ffffffffffffffffffffffffffffffffffffffff16828260028110610c5357610c526119b4565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1603610c7e57600192505050610c98565b8080610c8990611a12565b915050610c20565b5060009150505b919050565b600080610ca8610de1565b50915091508115610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce590611aa6565b60405180910390fd5b8015610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690611b12565b60405180910390fd5b5050565b6000610d3d611214565b90508015610d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7790611b7e565b60405180910390fd5b50565b6000808284610d929190611b9e565b905083811015610dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dce90611c1e565b60405180910390fd5b8091505092915050565b600080600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e789190611c53565b90506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0d9190611c53565b9050600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa39190611d02565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff16915060008473ffffffffffffffffffffffffffffffffffffffff166370a08231600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161102591906117eb565b602060405180830381865afa158015611042573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110669190611d6a565b905060008473ffffffffffffffffffffffffffffffffffffffff166370a08231600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016110c591906117eb565b602060405180830381865afa1580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111069190611d6a565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361118a578184111561117f5781846111719190611d97565b96506103e887119850611185565b81841497505b611209565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361120857808311156112015780836111f39190611d97565b96506103e887119850611207565b80831497505b5b5b505050505050909192565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a89190611c53565b90506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133d9190611c53565b9050600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156113af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d39190611d02565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff16915060008373ffffffffffffffffffffffffffffffffffffffff166370a08231600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161145591906117eb565b602060405180830381865afa158015611472573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114969190611d6a565b905060008573ffffffffffffffffffffffffffffffffffffffff166370a08231600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016114f591906117eb565b602060405180830381865afa158015611512573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115369190611d6a565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036115b357828211156115ae57600083836115a39190611d97565b90506103e881119750505b6115d5565b838111156115d457600084826115c99190611d97565b90506103e881119750505b5b50505050505090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061160e826115e3565b9050919050565b61161e81611603565b811461162957600080fd5b50565b60008135905061163b81611615565b92915050565b60008115159050919050565b61165681611641565b811461166157600080fd5b50565b6000813590506116738161164d565b92915050565b600080604083850312156116905761168f6115de565b5b600061169e8582860161162c565b92505060206116af85828601611664565b9150509250929050565b6000602082840312156116cf576116ce6115de565b5b60006116dd8482850161162c565b91505092915050565b6000819050919050565b6116f9816116e6565b811461170457600080fd5b50565b600081359050611716816116f0565b92915050565b60008060408385031215611733576117326115de565b5b60006117418582860161162c565b925050602061175285828601611707565b9150509250929050565b600060208284031215611772576117716115de565b5b600061178084828501611664565b91505092915050565b6000806000606084860312156117a2576117a16115de565b5b60006117b08682870161162c565b93505060206117c18682870161162c565b92505060406117d28682870161162c565b9150509250925092565b6117e581611603565b82525050565b600060208201905061180060008301846117dc565b92915050565b600080600080608085870312156118205761181f6115de565b5b600061182e8782880161162c565b945050602061183f8782880161162c565b935050604061185087828801611707565b925050606061186187828801611707565b91505092959194509250565b611876816116e6565b82525050565b6000604082019050611891600083018561186d565b61189e602083018461186d565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006118ec6020836118a5565b91506118f7826118b6565b602082019050919050565b6000602082019050818103600083015261191b816118df565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061197e6026836118a5565b915061198982611922565b604082019050919050565b600060208201905081810360008301526119ad81611971565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611a1d826116e6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a4f57611a4e6119e3565b5b600182019050919050565b7f4445524332300000000000000000000000000000000000000000000000000000600082015250565b6000611a906006836118a5565b9150611a9b82611a5a565b602082019050919050565b60006020820190508181036000830152611abf81611a83565b9050919050565b7f4254455243323000000000000000000000000000000000000000000000000000600082015250565b6000611afc6007836118a5565b9150611b0782611ac6565b602082019050919050565b60006020820190508181036000830152611b2b81611aef565b9050919050565b7f4145524332300000000000000000000000000000000000000000000000000000600082015250565b6000611b686006836118a5565b9150611b7382611b32565b602082019050919050565b60006020820190508181036000830152611b9781611b5b565b9050919050565b6000611ba9826116e6565b9150611bb4836116e6565b9250828201905080821115611bcc57611bcb6119e3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611c08601b836118a5565b9150611c1382611bd2565b602082019050919050565b60006020820190508181036000830152611c3781611bfb565b9050919050565b600081519050611c4d81611615565b92915050565b600060208284031215611c6957611c686115de565b5b6000611c7784828501611c3e565b91505092915050565b60006dffffffffffffffffffffffffffff82169050919050565b611ca381611c80565b8114611cae57600080fd5b50565b600081519050611cc081611c9a565b92915050565b600063ffffffff82169050919050565b611cdf81611cc6565b8114611cea57600080fd5b50565b600081519050611cfc81611cd6565b92915050565b600080600060608486031215611d1b57611d1a6115de565b5b6000611d2986828701611cb1565b9350506020611d3a86828701611cb1565b9250506040611d4b86828701611ced565b9150509250925092565b600081519050611d64816116f0565b92915050565b600060208284031215611d8057611d7f6115de565b5b6000611d8e84828501611d55565b91505092915050565b6000611da2826116e6565b9150611dad836116e6565b9250828203905081811115611dc557611dc46119e3565b5b9291505056fea2646970667358221220b8f9c9fd249d32b6fb91b8776174b2d7be469d268bce1c071885a8377b5c818f64736f6c63430008120033