0x608060405234801561001057600080fd5b50600436106101765760003560e01c806381a0548d116100d8578063dc3f90521161008c578063ea598cb011610066578063ea598cb014610379578063f7dbc6311461038c578063fc0c546a1461039f57600080fd5b8063dc3f90521461030d578063dc412e8314610320578063dd62ed3e1461033357600080fd5b8063a457c2d7116100bd578063a457c2d7146102d5578063a9059cbb146102e8578063ab2f07af146102fb57600080fd5b806381a0548d146102a157806395d89b41146102cd57600080fd5b8063313ce5671161012f5780633ddc334e116101145780633ddc334e1461021f57806354fd4d501461023257806370a082311461026b57600080fd5b8063313ce567146101fc578063395093511461020c57600080fd5b8063095ea7b311610160578063095ea7b3146101b457806318160ddd146101d757806323b872dd146101e957600080fd5b806243fec31461017b57806306fdde031461019f575b600080fd5b6005546101889060ff1681565b60405160ff90911681526020015b60405180910390f35b6101a76103ea565b60405161019691906115b1565b6101c76101c236600461162b565b61047c565b6040519015158152602001610196565b6002545b604051908152602001610196565b6101c76101f7366004611655565b610496565b600554610100900460ff16610188565b6101c761021a36600461162b565b6104ba565b6101db61022d3660046116aa565b610506565b60408051808201909152600581527f312e302e3000000000000000000000000000000000000000000000000000000060208201526101a7565b6101db6102793660046116dd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6102b46102af3660046116f8565b610519565b60405167ffffffffffffffff9091168152602001610196565b6101a7610540565b6101c76102e336600461162b565b61054f565b6101c76102f636600461162b565b610625565b60055461018890610100900460ff1681565b6101db61031b3660046116dd565b610633565b6101db61032e366004611711565b610656565b6101db61034136600461172c565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6102b46103873660046116f8565b610662565b6101db61039a3660046116f8565b61066e565b6005546103c59062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610196565b6060600380546103f990611748565b80601f016020809104026020016040519081016040528092919081815260200182805461042590611748565b80156104725780601f1061044757610100808354040283529160200191610472565b820191906000526020600020905b81548152906001019060200180831161045557829003601f168201915b5050505050905090565b60003361048a818585610696565b60019150505b92915050565b6000336104a4858285610849565b6104af858585610920565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061048a90829086906105019087906117ca565b610696565b60006105128383610b8f565b9392505050565b600554600090610490906105319060ff16600a611900565b61053b908461193e565b610bf7565b6060600480546103f990611748565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104af8286868403610696565b60003361048a818585610920565b336000908152602081905260408120546104909061065090610bf7565b83610b8f565b60006104908233610b8f565b60006104908233610c95565b6005546000906106829060ff16600a611900565b61068c9083611952565b6104909083611966565b73ffffffffffffffffffffffffffffffffffffffff8316610738576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff82166107db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461091a578181101561090d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060f565b61091a8484848403610696565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166109c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff8216610a66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610b1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361091a565b600554600090610ba39060ff16600a611900565b610bb79067ffffffffffffffff8516611979565b9050610bcd338467ffffffffffffffff16610cf8565b6005546104909062010000900473ffffffffffffffffffffffffffffffffffffffff168383610ebc565b600067ffffffffffffffff821115610c91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f3420626974730000000000000000000000000000000000000000000000000000606482015260840161060f565b5090565b600080610ca18461066e565b600554909150610ccd9062010000900473ffffffffffffffffffffffffffffffffffffffff1682610f90565b610cd681610519565b9150610cec838367ffffffffffffffff16611121565b5092915050565b505050565b73ffffffffffffffffffffffffffffffffffffffff8216610d9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610e51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610cf39084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611214565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190602401602060405180830381865afa158015610ffd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110219190611990565b905061104573ffffffffffffffffffffffffffffffffffffffff8416333085611320565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090829073ffffffffffffffffffffffffffffffffffffffff8616906370a0823190602401602060405180830381865afa1580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d89190611990565b6110e29190611966565b90508281101561091a576040517fc0159a610000000000000000000000000000000000000000000000000000000081526004810184905260240161060f565b73ffffffffffffffffffffffffffffffffffffffff821661119e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060f565b80600260008282546111b091906117ca565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000611276826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661137e9092919063ffffffff16565b805190915015610cf3578080602001905181019061129491906119a9565b610cf3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161060f565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261091a9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401610f0e565b606061138d8484600085611395565b949350505050565b606082471015611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161060f565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161145091906119cb565b60006040518083038185875af1925050503d806000811461148d576040519150601f19603f3d011682016040523d82523d6000602084013e611492565b606091505b50915091506114a3878383876114ae565b979650505050505050565b6060831561154457825160000361153d5773ffffffffffffffffffffffffffffffffffffffff85163b61153d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161060f565b508161138d565b61138d83838151156115595781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060f91906115b1565b60005b838110156115a8578181015183820152602001611590565b50506000910152565b60208152600082518060208401526115d081604085016020870161158d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461162657600080fd5b919050565b6000806040838503121561163e57600080fd5b61164783611602565b946020939093013593505050565b60008060006060848603121561166a57600080fd5b61167384611602565b925061168160208501611602565b929592945050506040919091013590565b803567ffffffffffffffff8116811461162657600080fd5b600080604083850312156116bd57600080fd5b6116c683611692565b91506116d460208401611602565b90509250929050565b6000602082840312156116ef57600080fd5b61051282611602565b60006020828403121561170a57600080fd5b5035919050565b60006020828403121561172357600080fd5b61051282611692565b6000806040838503121561173f57600080fd5b6116c683611602565b600181811c9082168061175c57607f821691505b602082108103611795577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156104905761049061179b565b6001815b6001841115611818578085048111156117fc576117fc61179b565b600184161561180a57908102905b60019390931c9280026117e1565b935093915050565b60008261182f57506001610490565b8161183c57506000610490565b8160018114611852576002811461185c57611878565b6001915050610490565b60ff84111561186d5761186d61179b565b50506001821b610490565b5060208310610133831016604e8410600b841016171561189b575081810a610490565b6118c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846117dd565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156118f8576118f861179b565b029392505050565b600061051260ff841683611820565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261194d5761194d61190f565b500490565b6000826119615761196161190f565b500690565b818103818111156104905761049061179b565b80820281158282048414176104905761049061179b565b6000602082840312156119a257600080fd5b5051919050565b6000602082840312156119bb57600080fd5b8151801515811461051257600080fd5b600082516119dd81846020870161158d565b919091019291505056fea264697066735822122081b6493f91527bc150151094c2da4296262b00929cbb5ceee19b1f915d42027664736f6c634300081c0033
0x608060405234801561001057600080fd5b50604051611f00380380611f0083398101604081905261002f9161021b565b816001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801561006d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526100959190810190610272565b826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156100d3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526100fb9190810190610272565b600361010783826103c7565b50600461011482826103c7565b50505081600560026101000a8154816001600160a01b0302191690836001600160a01b031602179055506000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561017e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101a29190610485565b90508060ff168260ff16106101ca57604051634668624160e01b815260040160405180910390fd5b6005805461ff00191661010060ff8516021790556101e882826104a7565b6005805460ff191660ff92909216919091179055506104d4915050565b805160ff8116811461021657600080fd5b919050565b6000806040838503121561022e57600080fd5b82516001600160a01b038116811461024557600080fd5b915061025360208401610205565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561028457600080fd5b81516001600160401b0381111561029a57600080fd5b8201601f810184136102ab57600080fd5b80516001600160401b038111156102c4576102c461025c565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102f2576102f261025c565b60405281815282820160200186101561030a57600080fd5b60005b828110156103295760208185018101518383018201520161030d565b50600091810160200191909152949350505050565b600181811c9082168061035257607f821691505b60208210810361037257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156103c257806000526020600020601f840160051c8101602085101561039f5750805b601f840160051c820191505b818110156103bf57600081556001016103ab565b50505b505050565b81516001600160401b038111156103e0576103e061025c565b6103f4816103ee845461033e565b84610378565b6020601f82116001811461042857600083156104105750848201515b600019600385901b1c1916600184901b1784556103bf565b600084815260208120601f198516915b828110156104585787850151825560209485019460019092019101610438565b50848210156104765786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60006020828403121561049757600080fd5b6104a082610205565b9392505050565b60ff82811682821603908111156104ce57634e487b7160e01b600052601160045260246000fd5b92915050565b611a1d806104e36000396000f3fe608060405234801561001057600080fd5b50600436106101765760003560e01c806381a0548d116100d8578063dc3f90521161008c578063ea598cb011610066578063ea598cb014610379578063f7dbc6311461038c578063fc0c546a1461039f57600080fd5b8063dc3f90521461030d578063dc412e8314610320578063dd62ed3e1461033357600080fd5b8063a457c2d7116100bd578063a457c2d7146102d5578063a9059cbb146102e8578063ab2f07af146102fb57600080fd5b806381a0548d146102a157806395d89b41146102cd57600080fd5b8063313ce5671161012f5780633ddc334e116101145780633ddc334e1461021f57806354fd4d501461023257806370a082311461026b57600080fd5b8063313ce567146101fc578063395093511461020c57600080fd5b8063095ea7b311610160578063095ea7b3146101b457806318160ddd146101d757806323b872dd146101e957600080fd5b806243fec31461017b57806306fdde031461019f575b600080fd5b6005546101889060ff1681565b60405160ff90911681526020015b60405180910390f35b6101a76103ea565b60405161019691906115b1565b6101c76101c236600461162b565b61047c565b6040519015158152602001610196565b6002545b604051908152602001610196565b6101c76101f7366004611655565b610496565b600554610100900460ff16610188565b6101c761021a36600461162b565b6104ba565b6101db61022d3660046116aa565b610506565b60408051808201909152600581527f312e302e3000000000000000000000000000000000000000000000000000000060208201526101a7565b6101db6102793660046116dd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6102b46102af3660046116f8565b610519565b60405167ffffffffffffffff9091168152602001610196565b6101a7610540565b6101c76102e336600461162b565b61054f565b6101c76102f636600461162b565b610625565b60055461018890610100900460ff1681565b6101db61031b3660046116dd565b610633565b6101db61032e366004611711565b610656565b6101db61034136600461172c565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6102b46103873660046116f8565b610662565b6101db61039a3660046116f8565b61066e565b6005546103c59062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610196565b6060600380546103f990611748565b80601f016020809104026020016040519081016040528092919081815260200182805461042590611748565b80156104725780601f1061044757610100808354040283529160200191610472565b820191906000526020600020905b81548152906001019060200180831161045557829003601f168201915b5050505050905090565b60003361048a818585610696565b60019150505b92915050565b6000336104a4858285610849565b6104af858585610920565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061048a90829086906105019087906117ca565b610696565b60006105128383610b8f565b9392505050565b600554600090610490906105319060ff16600a611900565b61053b908461193e565b610bf7565b6060600480546103f990611748565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104af8286868403610696565b60003361048a818585610920565b336000908152602081905260408120546104909061065090610bf7565b83610b8f565b60006104908233610b8f565b60006104908233610c95565b6005546000906106829060ff16600a611900565b61068c9083611952565b6104909083611966565b73ffffffffffffffffffffffffffffffffffffffff8316610738576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff82166107db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461091a578181101561090d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060f565b61091a8484848403610696565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166109c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff8216610a66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610b1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361091a565b600554600090610ba39060ff16600a611900565b610bb79067ffffffffffffffff8516611979565b9050610bcd338467ffffffffffffffff16610cf8565b6005546104909062010000900473ffffffffffffffffffffffffffffffffffffffff168383610ebc565b600067ffffffffffffffff821115610c91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f3420626974730000000000000000000000000000000000000000000000000000606482015260840161060f565b5090565b600080610ca18461066e565b600554909150610ccd9062010000900473ffffffffffffffffffffffffffffffffffffffff1682610f90565b610cd681610519565b9150610cec838367ffffffffffffffff16611121565b5092915050565b505050565b73ffffffffffffffffffffffffffffffffffffffff8216610d9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610e51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161060f565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610cf39084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611214565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190602401602060405180830381865afa158015610ffd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110219190611990565b905061104573ffffffffffffffffffffffffffffffffffffffff8416333085611320565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090829073ffffffffffffffffffffffffffffffffffffffff8616906370a0823190602401602060405180830381865afa1580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d89190611990565b6110e29190611966565b90508281101561091a576040517fc0159a610000000000000000000000000000000000000000000000000000000081526004810184905260240161060f565b73ffffffffffffffffffffffffffffffffffffffff821661119e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060f565b80600260008282546111b091906117ca565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000611276826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661137e9092919063ffffffff16565b805190915015610cf3578080602001905181019061129491906119a9565b610cf3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161060f565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261091a9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401610f0e565b606061138d8484600085611395565b949350505050565b606082471015611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161060f565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161145091906119cb565b60006040518083038185875af1925050503d806000811461148d576040519150601f19603f3d011682016040523d82523d6000602084013e611492565b606091505b50915091506114a3878383876114ae565b979650505050505050565b6060831561154457825160000361153d5773ffffffffffffffffffffffffffffffffffffffff85163b61153d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161060f565b508161138d565b61138d83838151156115595781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060f91906115b1565b60005b838110156115a8578181015183820152602001611590565b50506000910152565b60208152600082518060208401526115d081604085016020870161158d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461162657600080fd5b919050565b6000806040838503121561163e57600080fd5b61164783611602565b946020939093013593505050565b60008060006060848603121561166a57600080fd5b61167384611602565b925061168160208501611602565b929592945050506040919091013590565b803567ffffffffffffffff8116811461162657600080fd5b600080604083850312156116bd57600080fd5b6116c683611692565b91506116d460208401611602565b90509250929050565b6000602082840312156116ef57600080fd5b61051282611602565b60006020828403121561170a57600080fd5b5035919050565b60006020828403121561172357600080fd5b61051282611692565b6000806040838503121561173f57600080fd5b6116c683611602565b600181811c9082168061175c57607f821691505b602082108103611795577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156104905761049061179b565b6001815b6001841115611818578085048111156117fc576117fc61179b565b600184161561180a57908102905b60019390931c9280026117e1565b935093915050565b60008261182f57506001610490565b8161183c57506000610490565b8160018114611852576002811461185c57611878565b6001915050610490565b60ff84111561186d5761186d61179b565b50506001821b610490565b5060208310610133831016604e8410600b841016171561189b575081810a610490565b6118c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846117dd565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156118f8576118f861179b565b029392505050565b600061051260ff841683611820565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261194d5761194d61190f565b500490565b6000826119615761196161190f565b500690565b818103818111156104905761049061179b565b80820281158282048414176104905761049061179b565b6000602082840312156119a257600080fd5b5051919050565b6000602082840312156119bb57600080fd5b8151801515811461051257600080fd5b600082516119dd81846020870161158d565b919091019291505056fea264697066735822122081b6493f91527bc150151094c2da4296262b00929cbb5ceee19b1f915d42027664736f6c634300081c00330000000000000000000000009778ac3d5a2f916aa9abf1eb85c207d990ca26550000000000000000000000000000000000000000000000000000000000000005