60806040526a52b7d2dcc80cd2e40000006003556000600460006101000a81548160ff0219169083151502179055506001601060006101000a81548160ff0219169083151502179055506005601155610e106012556107086014556000601e60006101000a81548160ff02191690831515021790555060016022556000602355600160245560006025553480156200009657600080fd5b506040518060400160405280600981526020017f554c54524120424f5400000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f552d424f5400000000000000000000000000000000000000000000000000000081525081600790805190602001906200011b92919062000789565b5080600890805190602001906200013492919062000789565b50600354600681905550505062000160620001546200067960201b60201c565b6200068160201b60201c565b670de0b6b3a7640000600f819055506200018d600f546005546200074760201b620014771790919060201c565b600581905550620001ed600f546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200074760201b620014771790919060201c565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516200029191906200084a565b60405180910390a3737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600d81905550600554600e819055506001600c819055506022546017819055506023546018819055506018546017546200032c919062000867565b601681905550602454601a81905550602554601b81905550601b54601a5462000356919062000867565b6019819055506001601f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601f6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601f600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160206000620004f66200075f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016020600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160206000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000962565b600033905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000818362000757919062000867565b905092915050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200079790620008ce565b90600052602060002090601f016020900481019282620007bb576000855562000807565b82601f10620007d657805160ff191683800117855562000807565b8280016001018555821562000807579182015b8281111562000806578251825591602001919060010190620007e9565b5b5090506200081691906200081a565b5090565b5b80821115620008355760008160009055506001016200081b565b5090565b6200084481620008c4565b82525050565b600060208201905062000861600083018462000839565b92915050565b60006200087482620008c4565b91506200088183620008c4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620008b957620008b862000904565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620008e757607f821691505b60208210811415620008fe57620008fd62000933565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61360680620009726000396000f3fe60806040526004361061024a5760003560e01c8063715018a611610139578063b62496f5116100b6578063dd62ed3e1161007a578063dd62ed3e146108bf578063e2f45605146108fc578063f11a24d314610927578063f637434214610952578063f8b45b051461097d578063f9f69a3c146109a857610251565b8063b62496f5146107c4578063bb59840d14610801578063c8c8ebe41461082c578063cf910b8f14610857578063d85ba0631461089457610251565b80639ec22c0e116100fd5780639ec22c0e146106cb578063a457c2d7146106f6578063a4c82a0014610733578063a9059cbb1461075e578063ab760c821461079b57610251565b8063715018a6146106085780637bce5a041461061f5780638da5cb5b1461064a578063921369131461067557806395d89b41146106a057610251565b806323b872dd116101c7578063395093511161018b578063395093511461050f57806342966c681461054c5780634a62bb65146105755780636a486a8e146105a057806370a08231146105cb57610251565b806323b872dd1461042657806327c8f835146104635780632c3e486c1461048e5780632e82f1a0146104b9578063313ce567146104e457610251565b806318160ddd1161020e57806318160ddd1461034f578063184c16c51461037a578063199ffc72146103a55780631a8145bb146103d05780631f3fed8f146103fb57610251565b806303438dd01461025657806306fdde031461027f578063095ea7b3146102aa57806310d5de53146102e75780631694505e1461032457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061027d600480360381019061027891906128d1565b6109d1565b005b34801561028b57600080fd5b50610294610a6d565b6040516102a19190612cee565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612991565b610aff565b6040516102de9190612cd3565b60405180910390f35b3480156102f357600080fd5b5061030e600480360381019061030991906128d1565b610b1d565b60405161031b9190612cd3565b60405180910390f35b34801561033057600080fd5b50610339610b3c565b6040516103469190612cb8565b60405180910390f35b34801561035b57600080fd5b50610364610b62565b6040516103719190612ef0565b60405180910390f35b34801561038657600080fd5b5061038f610b6c565b60405161039c9190612ef0565b60405180910390f35b3480156103b157600080fd5b506103ba610b72565b6040516103c79190612ef0565b60405180910390f35b3480156103dc57600080fd5b506103e5610b78565b6040516103f29190612ef0565b60405180910390f35b34801561040757600080fd5b50610410610b7e565b60405161041d9190612ef0565b60405180910390f35b34801561043257600080fd5b5061044d6004803603810190610448919061293e565b610b84565b60405161045a9190612cd3565b60405180910390f35b34801561046f57600080fd5b50610478610c7c565b6040516104859190612cb8565b60405180910390f35b34801561049a57600080fd5b506104a3610c82565b6040516104b09190612ef0565b60405180910390f35b3480156104c557600080fd5b506104ce610c88565b6040516104db9190612cd3565b60405180910390f35b3480156104f057600080fd5b506104f9610c9b565b6040516105069190612f0b565b60405180910390f35b34801561051b57600080fd5b5061053660048036038101906105319190612991565b610ca4565b6040516105439190612cd3565b60405180910390f35b34801561055857600080fd5b50610573600480360381019061056e91906129d1565b610d50565b005b34801561058157600080fd5b5061058a610ded565b6040516105979190612cd3565b60405180910390f35b3480156105ac57600080fd5b506105b5610e00565b6040516105c29190612ef0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed91906128d1565b610e06565b6040516105ff9190612ef0565b60405180910390f35b34801561061457600080fd5b5061061d610e4e565b005b34801561062b57600080fd5b50610634610ed6565b6040516106419190612ef0565b60405180910390f35b34801561065657600080fd5b5061065f610edc565b60405161066c9190612cb8565b60405180910390f35b34801561068157600080fd5b5061068a610f06565b6040516106979190612ef0565b60405180910390f35b3480156106ac57600080fd5b506106b5610f0c565b6040516106c29190612cee565b60405180910390f35b3480156106d757600080fd5b506106e0610f9e565b6040516106ed9190612ef0565b60405180910390f35b34801561070257600080fd5b5061071d60048036038101906107189190612991565b610fa4565b60405161072a9190612cd3565b60405180910390f35b34801561073f57600080fd5b5061074861108f565b6040516107559190612ef0565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190612991565b611095565b6040516107929190612cd3565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd91906128d1565b6110b3565b005b3480156107d057600080fd5b506107eb60048036038101906107e691906128d1565b6111ce565b6040516107f89190612cd3565b60405180910390f35b34801561080d57600080fd5b506108166111ee565b6040516108239190612cd3565b60405180910390f35b34801561083857600080fd5b506108416112da565b60405161084e9190612ef0565b60405180910390f35b34801561086357600080fd5b5061087e600480360381019061087991906128d1565b6112e0565b60405161088b9190612cd3565b60405180910390f35b3480156108a057600080fd5b506108a9611336565b6040516108b69190612ef0565b60405180910390f35b3480156108cb57600080fd5b506108e660048036038101906108e191906128fe565b61133c565b6040516108f39190612ef0565b60405180910390f35b34801561090857600080fd5b506109116113c3565b60405161091e9190612ef0565b60405180910390f35b34801561093357600080fd5b5061093c6113c9565b6040516109499190612ef0565b60405180910390f35b34801561095e57600080fd5b506109676113cf565b6040516109749190612ef0565b60405180910390f35b34801561098957600080fd5b506109926113d5565b60405161099f9190612ef0565b60405180910390f35b3480156109b457600080fd5b506109cf60048036038101906109ca91906128d1565b6113db565b005b3373ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5890612eb0565b60405180910390fd5b610a6a8161148d565b50565b606060078054610a7c906130ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa8906130ea565b8015610af55780601f10610aca57610100808354040283529160200191610af5565b820191906000526020600020905b815481529060010190602001808311610ad857829003601f168201915b5050505050905090565b6000610b13610b0c6114e7565b84846114ef565b6001905092915050565b602080528060005260406000206000915054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60145481565b60115481565b601d5481565b601c5481565b6000610b918484846116ba565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bdc6114e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5390612dd0565b60405180910390fd5b610c7085610c686114e7565b8584036114ef565b60019150509392505050565b61dead81565b60125481565b601060009054906101000a900460ff1681565b60006009905090565b6000610d46610cb16114e7565b848460026000610cbf6114e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d419190612f4d565b6114ef565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd790612eb0565b60405180910390fd5b610dea3382612223565b50565b601e60009054906101000a900460ff1681565b60195481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e566114e7565b73ffffffffffffffffffffffffffffffffffffffff16610e74610edc565b73ffffffffffffffffffffffffffffffffffffffff1614610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec190612df0565b60405180910390fd5b610ed460006123ed565b565b60175481565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601a5481565b606060088054610f1b906130ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610f47906130ea565b8015610f945780601f10610f6957610100808354040283529160200191610f94565b820191906000526020600020905b815481529060010190602001808311610f7757829003601f168201915b5050505050905090565b60155481565b60008060026000610fb36114e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106790612ed0565b60405180910390fd5b61108461107b6114e7565b858584036114ef565b600191505092915050565b60135481565b60006110a96110a26114e7565b84846116ba565b6001905092915050565b6110bb6114e7565b73ffffffffffffffffffffffffffffffffffffffff166110d9610edc565b73ffffffffffffffffffffffffffffffffffffffff161461112f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112690612df0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118a57600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60216020528060005260406000206000915054906101000a900460ff1681565b60006111f86114e7565b73ffffffffffffffffffffffffffffffffffffffff16611216610edc565b73ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390612df0565b60405180910390fd5b6001601781905550600060188190555060185460175461128c9190612f4d565b60168190555060016019819055506001601a81905550601b54601a546112b29190612f4d565b6019819055506000601e60006101000a81548160ff0219169083151502179055506001905090565b600d5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60165481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b60185481565b601b5481565b600e5481565b3373ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290612eb0565b60405180910390fd5b611474816124b3565b50565b600081836114859190612f4d565b905092915050565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155690612e70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c690612d50565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ad9190612ef0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561172a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172190612e30565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179190612d10565b60405180910390fd5b60008114156117b4576117af8383600061250e565b61221e565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118555750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156118b15760011515600460009054906101000a900460ff161515146118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790612e50565b60405180910390fd5b5b601e60009054906101000a900460ff1615611cb7576118ce610edc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561193c575061190c610edc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119755750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119af575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119c85750600b60149054906101000a900460ff16155b15611cb657602160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a705750602060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b1757600d54811115611aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab190612db0565b60405180910390fd5b600e54611ac683610e06565b82611ad19190612f4d565b1115611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0990612e90565b60405180910390fd5b611cb5565b602160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611bba5750602060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c0957600d54811115611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb90612d90565b60405180910390fd5b611cb4565b602060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cb357600e54611c6683610e06565b82611c719190612f4d565b1115611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca990612e90565b60405180910390fd5b5b5b5b5b5b60011515600460009054906101000a900460ff1615151415612212576000611cde30610e06565b90506000600c548210159050808015611d045750600b60149054906101000a900460ff16155b8015611d5a5750602160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db05750601f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e065750601f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e4a576001600b60146101000a81548160ff021916908315150217905550611e2e61278f565b6000600b60146101000a81548160ff0219169083151502179055505b600b60149054906101000a900460ff16158015611eb05750602160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015611ec85750601060009054906101000a900460ff165b8015611ee35750601254601354611edf9190612f4d565b4210155b8015611f395750601f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b506000600b60149054906101000a900460ff16159050601f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ff05750601f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ffa57600090505b6000811561220d57602160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561205d57506000601954115b156120f75761208a606461207c6019548861287190919063ffffffff16565b61288790919063ffffffff16565b9050601954601b548261209d9190612fd4565b6120a79190612fa3565b601d60008282546120b89190612f4d565b92505081905550601954601a54826120d09190612fd4565b6120da9190612fa3565b601c60008282546120eb9190612f4d565b925050819055506121e9565b602160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561215257506000601654115b156121e85761217f60646121716016548861287190919063ffffffff16565b61288790919063ffffffff16565b9050601654601854826121929190612fd4565b61219c9190612fa3565b601d60008282546121ad9190612f4d565b92505081905550601654601754826121c59190612fd4565b6121cf9190612fa3565b601c60008282546121e09190612f4d565b925050819055505b5b60008111156121fe576121fd87308361250e565b5b808561220a919061302e565b94505b505050505b61221d83838361250e565b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228a90612e10565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231090612d30565b60405180910390fd5b81600654612327919061302e565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816005600082825461237b919061302e565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e09190612ef0565b60405180910390a3505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561257e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257590612e30565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e590612d10565b60405180910390fd5b6125f983838361289d565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561267f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267690612d70565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127129190612f4d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127769190612ef0565b60405180910390a36127898484846128a2565b50505050565b600061279a30610e06565b90506000601c54601d546127ae9190612f4d565b90506000808314806127c05750600082145b156127cd5750505061286f565b6000601d819055506000601c81905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161282390612ca3565b60006040518083038185875af1925050503d8060008114612860576040519150601f19603f3d011682016040523d82523d6000602084013e612865565b606091505b5050809150505050505b565b6000818361287f9190612fd4565b905092915050565b600081836128959190612fa3565b905092915050565b505050565b505050565b6000813590506128b6816135a2565b92915050565b6000813590506128cb816135b9565b92915050565b6000602082840312156128e7576128e66131a9565b5b60006128f5848285016128a7565b91505092915050565b60008060408385031215612915576129146131a9565b5b6000612923858286016128a7565b9250506020612934858286016128a7565b9150509250929050565b600080600060608486031215612957576129566131a9565b5b6000612965868287016128a7565b9350506020612976868287016128a7565b9250506040612987868287016128bc565b9150509250925092565b600080604083850312156129a8576129a76131a9565b5b60006129b6858286016128a7565b92505060206129c7858286016128bc565b9150509250929050565b6000602082840312156129e7576129e66131a9565b5b60006129f5848285016128bc565b91505092915050565b612a0781613062565b82525050565b612a1681613074565b82525050565b6000612a2782612f26565b612a318185612f3c565b9350612a418185602086016130b7565b612a4a816131ae565b840191505092915050565b6000612a62602383612f3c565b9150612a6d826131bf565b604082019050919050565b6000612a85602283612f3c565b9150612a908261320e565b604082019050919050565b6000612aa8602283612f3c565b9150612ab38261325d565b604082019050919050565b6000612acb602683612f3c565b9150612ad6826132ac565b604082019050919050565b6000612aee603683612f3c565b9150612af9826132fb565b604082019050919050565b6000612b11603583612f3c565b9150612b1c8261334a565b604082019050919050565b6000612b34602883612f3c565b9150612b3f82613399565b604082019050919050565b6000612b57602083612f3c565b9150612b62826133e8565b602082019050919050565b6000612b7a602183612f3c565b9150612b8582613411565b604082019050919050565b6000612b9d602583612f3c565b9150612ba882613460565b604082019050919050565b6000612bc0600083612f31565b9150612bcb826134af565b600082019050919050565b6000612be3600083612f3c565b9150612bee826134af565b600082019050919050565b6000612c06602483612f3c565b9150612c11826134b2565b604082019050919050565b6000612c29601383612f3c565b9150612c3482613501565b602082019050919050565b6000612c4c601e83612f3c565b9150612c578261352a565b602082019050919050565b6000612c6f602583612f3c565b9150612c7a82613553565b604082019050919050565b612c8e816130a0565b82525050565b612c9d816130aa565b82525050565b6000612cae82612bb3565b9150819050919050565b6000602082019050612ccd60008301846129fe565b92915050565b6000602082019050612ce86000830184612a0d565b92915050565b60006020820190508181036000830152612d088184612a1c565b905092915050565b60006020820190508181036000830152612d2981612a55565b9050919050565b60006020820190508181036000830152612d4981612a78565b9050919050565b60006020820190508181036000830152612d6981612a9b565b9050919050565b60006020820190508181036000830152612d8981612abe565b9050919050565b60006020820190508181036000830152612da981612ae1565b9050919050565b60006020820190508181036000830152612dc981612b04565b9050919050565b60006020820190508181036000830152612de981612b27565b9050919050565b60006020820190508181036000830152612e0981612b4a565b9050919050565b60006020820190508181036000830152612e2981612b6d565b9050919050565b60006020820190508181036000830152612e4981612b90565b9050919050565b60006020820190508181036000830152612e6981612bd6565b9050919050565b60006020820190508181036000830152612e8981612bf9565b9050919050565b60006020820190508181036000830152612ea981612c1c565b9050919050565b60006020820190508181036000830152612ec981612c3f565b9050919050565b60006020820190508181036000830152612ee981612c62565b9050919050565b6000602082019050612f056000830184612c85565b92915050565b6000602082019050612f206000830184612c94565b92915050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000612f58826130a0565b9150612f63836130a0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f9857612f9761311c565b5b828201905092915050565b6000612fae826130a0565b9150612fb9836130a0565b925082612fc957612fc861314b565b5b828204905092915050565b6000612fdf826130a0565b9150612fea836130a0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130235761302261311c565b5b828202905092915050565b6000613039826130a0565b9150613044836130a0565b9250828210156130575761305661311c565b5b828203905092915050565b600061306d82613080565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156130d55780820151818401526020810190506130ba565b838111156130e4576000848401525b50505050565b6000600282049050600182168061310257607f821691505b602082108114156131165761311561317a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b7f43616c6c6572206973206e6f74206d61726b6574696e672077616c6c65740000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6135ab81613062565b81146135b657600080fd5b50565b6135c2816130a0565b81146135cd57600080fd5b5056fea2646970667358221220813d594a0faf06ef722066314cb23aa4022544a5258181f205d3caaa11a8994464736f6c63430008050033