60806040526040805190810160405280600381526020017f4543540000000000000000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000265565b506040805190810160405280600b81526020017f457468657243656e746572000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000265565b506002600455348015620000b257600080fd5b5060405160208062003a1983398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156200019f578051825260208201915060208101905060208303925062000178565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600102600681600019169055505062000314565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002a857805160ff1916838001178555620002d9565b82800160010185558215620002d9579182015b82811115620002d8578251825591602001919060010190620002bb565b5b509050620002e89190620002ec565b5090565b6200031191905b808211156200030d576000816000905550600101620002f3565b5090565b90565b6136f580620003246000396000f300608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063095ea7b31461022b57806318160ddd1461029057806322f4596f146102bb57806323b872dd146102e657806330bdae571461036b578063313ce56714610396578063392efb52146103c757806344c61237146104105780635b9bd14f1461043b5780636237d8a9146104665780636b2f46321461049557806370a08231146104c0578063780ea77c1461051757806379ba5097146105215780637b0e73631461053857806389135ae9146105655780638b27a735146105a25780638da5cb5b146105b95780639143a26614610610578063949e8acd1461065157806395d89b411461067c578063a9059cbb1461070c578063b84c824614610771578063bcd76e79146107da578063c47f00271461081b578063c6ddfe0a14610884578063cae9ca51146108c7578063d4ee1d9014610972578063dc39d06d146109c9578063dd62ed3e14610a2e578063f2fde38b14610aa5575b600080fd5b3480156101a757600080fd5b506101b0610ae8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f05780820151818401526020810190506101d5565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023757600080fd5b50610276600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b86565b604051808215151515815260200191505060405180910390f35b34801561029c57600080fd5b506102a5610c78565b6040518082815260200191505060405180910390f35b3480156102c757600080fd5b506102d0610c82565b6040518082815260200191505060405180910390f35b3480156102f257600080fd5b50610351600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c92565b604051808215151515815260200191505060405180910390f35b34801561037757600080fd5b50610380610e3a565b6040518082815260200191505060405180910390f35b3480156103a257600080fd5b506103ab610e54565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103d357600080fd5b506103f66004803603810190808035600019169060200190929190505050610e59565b604051808215151515815260200191505060405180910390f35b34801561041c57600080fd5b50610425610e79565b6040518082815260200191505060405180910390f35b34801561044757600080fd5b50610450610e88565b6040518082815260200191505060405180910390f35b34801561047257600080fd5b5061047b610e98565b604051808215151515815260200191505060405180910390f35b3480156104a157600080fd5b506104aa61101d565b6040518082815260200191505060405180910390f35b3480156104cc57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061103c565b6040518082815260200191505060405180910390f35b61051f611085565b005b34801561052d57600080fd5b506105366113b5565b005b34801561054457600080fd5b50610563600480360381019080803590602001909291905050506115bd565b005b34801561057157600080fd5b506105a06004803603810190808035600019169060200190929190803515159060200190929190505050611856565b005b3480156105ae57600080fd5b506105b76119ec565b005b3480156105c557600080fd5b506105ce611c2a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061c57600080fd5b5061063b60048036038101908080359060200190929190505050611c4f565b6040518082815260200191505060405180910390f35b34801561065d57600080fd5b50610666611c64565b6040518082815260200191505060405180910390f35b34801561068857600080fd5b50610691611c79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d15780820151818401526020810190506106b6565b50505050905090810190601f1680156106fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071857600080fd5b50610757600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d17565b604051808215151515815260200191505060405180910390f35b34801561077d57600080fd5b506107d8600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611d2e565b005b3480156107e657600080fd5b5061080560048036038101908080359060200190929190505050611ea7565b6040518082815260200191505060405180910390f35b34801561082757600080fd5b50610882600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611f4b565b005b34801561089057600080fd5b506108b16004803603810190808035151590602001909291905050506120c4565b6040518082815260200191505060405180910390f35b3480156108d357600080fd5b50610958600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061211d565b604051808215151515815260200191505060405180910390f35b34801561097e57600080fd5b5061098761236c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109d557600080fd5b50610a14600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612392565b604051808215151515815260200191505060405180910390f35b348015610a3a57600080fd5b50610a8f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061255f565b6040518082815260200191505060405180910390f35b348015610ab157600080fd5b50610ae6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125e6565b005b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b7e5780601f10610b5357610100808354040283529160200191610b7e565b820191906000526020600020905b815481529060010190602001808311610b6157829003601f168201915b505050505081565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b601260ff16600a0a620f42400281565b6000610c9e843361255f565b8211151515610d15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b20616c6c6f77616e63652100000000000000000081525060200191505060405180910390fd5b610da482600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ee90919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e2f848484612707565b600190509392505050565b6000610e4f600160120360ff16600a0a612bc9565b905090565b601281565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000610e83612c59565b905090565b601260ff16600a0a620c35000281565b60008060003390506000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610f57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f426c6f636b206e756d62657220696e76616c696421000000000000000000000081525060200191505060405180910390fd5b610f9f600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c87565b91506002821115610fcf573373ffffffffffffffffffffffffffffffffffffffff16600102600681600019169055505b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505090565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b681043561a88293000003073ffffffffffffffffffffffffffffffffffffffff1631111580156111875750600a600033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156111355780518252602082019150602081019050602083039250611110565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff165b156112e457600a600033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561121157805182526020820191506020810190506020830392506111ec565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f596f7520617265206e6f74207065726d697373696f6e2100000000000000000081525060200191505060405180910390fd5b6112df34612e89565b6113b3565b600160120360ff16600a0a34141515611365576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f56616c756520697320696e76616c69642100000000000000000000000000000081525060200191505060405180910390fd5b61136e34612e89565b43600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561147a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f776e657220696e636f7272656374210000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060006115ca611c64565b11151561163f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b206d7920746f6b656e732100000000000000000081525060200191505060405180910390fd5b339150600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156116f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f45435420697320696e76616c696421000000000000000000000000000000000081525060200191505060405180910390fd5b611702836130de565b905061175683600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ee90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ae836005546126ee90919063ffffffff16565b6005819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117fa573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398483604051808381526020018281526020019250505060405180910390a2505050565b6000339050600a600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831015156118ef57805182526020820191506020810190506020830392506118ca565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156119b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f506c6561736520636865636b207065726d697373696f6e2061646d696e21000081525060200191505060405180910390fd5b81600a6000856000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008060006119f9611c64565b111515611a6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b206d7920746f6b656e732100000000000000000081525060200191505060405180910390fd5b339150611a79612c59565b9050600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f45435420697320696e76616c696421000000000000000000000000000000000081525060200191505060405180910390fd5b611b8481600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ee90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bdc816005546126ee90919063ffffffff16565b60058190555043600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c5d6006548361311a565b9050919050565b600080339050611c738161103c565b91505090565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d0f5780601f10611ce457610100808354040283529160200191611d0f565b820191906000526020600020905b815481529060010190602001808311611cf257829003601f168201915b505050505081565b6000611d24338484612707565b6001905092915050565b6000339050600a600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515611dc75780518252602082019150602081019050602083039250611da2565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611e8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f506c6561736520636865636b207065726d697373696f6e2061646d696e21000081525060200191505060405180910390fd5b8160029080519060200190611ea2929190613624565b505050565b600080600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611f4157611f3a600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054408361311a565b9050611f46565b600090505b919050565b6000339050600a600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515611fe45780518252602082019150602081019050602083039250611fbf565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156120a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f506c6561736520636865636b207065726d697373696f6e2061646d696e21000081525060200191505060405180910390fd5b81600390805190602001906120bf929190613624565b505050565b6000811561211357600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050612118565b600090505b919050565b600082600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156122fa5780820151818401526020810190506122df565b50505050905090810190601f1680156123275780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561234957600080fd5b505af115801561235d573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612458576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f776e657220696e636f7272656374210000000000000000000000000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561251c57600080fd5b505af1158015612530573d6000803e3d6000fd5b505050506040513d602081101561254657600080fd5b8101908080519060200190929190505050905092915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f776e657220696e636f7272656374210000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111515156126fc57fe5b818303905092915050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156127af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f506c6561736520636865636b206164647265737321000000000000000000000081525060200191505060405180910390fd5b60006127b9611c64565b11151561282e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b206d7920746f6b656e732100000000000000000081525060200191505060405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401111515612925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f506c6561736520636865636b20746f6b656e732076616c75652100000000000081525060200191505060405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540191506129fa83600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ee90919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a8f83600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461349c90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a381600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401141515612bc257fe5b5050505050565b6000600160120360ff16600a0a821415612c4f57612c48601260ff16600a0a620c350002612c3a612c0b600a601260ff16600a0a6134ba90919063ffffffff16565b612c2c600554601260ff16600a0a620f4240026126ee90919063ffffffff16565b6134ba90919063ffffffff16565b6134f590919063ffffffff16565b9050612c54565b600090505b919050565b6000612c82612c71600160120360ff16600a0a612bc9565b6004546134ba90919063ffffffff16565b905090565b600080600080600080600080600033975089409650612ca787600461311a565b9550612cb6600654600461311a565b945060009350600492505b6000831115612e7857612cd5868685613536565b15612e6a57600091503073ffffffffffffffffffffffffffffffffffffffff163190506004831415612d4d57612d286064612d1a600a846134ba90919063ffffffff16565b6134f590919063ffffffff16565b915068056bc75e2d63100000821115612d485768056bc75e2d6310000091505b600493505b6003831415612da057612d7d6064612d6f6002846134ba90919063ffffffff16565b6134f590919063ffffffff16565b9150678ac7230489e80000821115612d9b57678ac7230489e8000091505b600393505b6002831415612df457612dd16103e8612dc36005846134ba90919063ffffffff16565b6134f590919063ffffffff16565b9150670de0b6b3a7640000821115612def57670de0b6b3a764000091505b600293505b6001831415612e0d5767016345785d8a00009150600193505b6000821115612e65578773ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612e5c573d6000803e3d6000fd5b50839850612e7c565b600093505b828060019003935050612cc1565b8398505b5050505050505050919050565b600080339150601260ff16600a0a620f424002600554111515612fce57681043561a88293000003073ffffffffffffffffffffffffffffffffffffffff163111158015612fa85750600a600033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515612f565780518252602082019150602081019050602083039250612f31565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff165b15612fbd57612fb68361357c565b9050612fc9565b612fc683612bc9565b90505b612fd3565b600090505b61302581600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461349c90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061307d8160055461349c90919063ffffffff16565b6005819055508173ffffffffffffffffffffffffffffffffffffffff167f7f743fb741e07b0c4daeb2af54fb3ebfa2bdb31d9913a0e555661c870411aae58483604051808381526020018281526020019250505060405180910390a2505050565b6000613113601260ff16600a0a6131056130f66135be565b856134ba90919063ffffffff16565b6134f590919063ffffffff16565b9050919050565b600080600080600080600080600102896000191611801561313b5750600088115b15156131af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f56616c7565206973206e6f7420646566696e65642e000000000000000000000081525060200191505060405180910390fd5b60009550600188039450600160200360ff1693505b600084111561348d5788846020811015156131db57fe5b1a7f01000000000000000000000000000000000000000000000000000000000000000292506010837f0100000000000000000000000000000000000000000000000000000000000000900460ff1681151561323257fe5b047f0100000000000000000000000000000000000000000000000000000000000000029150817f01000000000000000000000000000000000000000000000000000000000000009004601002837f01000000000000000000000000000000000000000000000000000000000000009004037f010000000000000000000000000000000000000000000000000000000000000002905060007f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101580156133605750600a7f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916105b1561339c5784600a0a817f0100000000000000000000000000000000000000000000000000000000000000900402860195508480600190039550505b60007f010000000000000000000000000000000000000000000000000000000000000002827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101580156134355750600a7f010000000000000000000000000000000000000000000000000000000000000002827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916105b156134715784600a0a827f0100000000000000000000000000000000000000000000000000000000000000900402860195508480600190039550505b600085101561347f5761348d565b8380600190039450506131c4565b85965050505050505092915050565b60008082840190508381101515156134b057fe5b8091505092915050565b60008060008414156134cf57600091506134ee565b82840290508284828115156134e057fe5b041415156134ea57fe5b8091505b5092915050565b60008060008311151561350457fe5b828481151561350f57fe5b049050828481151561351d57fe5b06818402018414151561352c57fe5b8091505092915050565b600080600083600a0a8681151561354957fe5b06915083600a0a8581151561355a57fe5b0690508082141561356e5760019250613573565b600092505b50509392505050565b60006135b7600460120360ff16600a0a600e026135a9601260ff16600a0a856134ba90919063ffffffff16565b6134f590919063ffffffff16565b9050919050565b60008060008091503073ffffffffffffffffffffffffffffffffffffffff163190506000600554111561361c5761361960055461360b601260ff16600a0a846134ba90919063ffffffff16565b6134f590919063ffffffff16565b91505b819250505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061366557805160ff1916838001178555613693565b82800160010185558215613693579182015b82811115613692578251825591602001919060010190613677565b5b5090506136a091906136a4565b5090565b6136c691905b808211156136c25760008160009055506001016136aa565b5090565b905600a165627a7a723058200d0ebea51abecfa96561c3a8ca2e9406da12d82e02de373f329a208678aa51e00029000000000000000000000000972547cfa9425ce4bedbb38e0c6afb604ea188c4