0x6080604052600436106101985760003560e01c80638da5cb5b116100e0578063a9059cbb11610084578063d830678611610061578063d8306786146104e1578063dd62ed3e14610514578063f2fde38b1461055a578063fbfa77cf1461057a57005b8063a9059cbb14610481578063b7bda68f146104a1578063d1afa2e8146104c157005b806395d89b41116100bd57806395d89b41146104175780639be65a601461042c5780639d27fd671461044c578063a457c2d71461046157005b80638da5cb5b146103a757806395645e34146103c5578063958c2e52146103f757005b8063395093511161014757806370a082311161012457806370a0823114610315578063715018a61461034b57806383f9bcda146103605780638b750c561461039257005b8063395093511461029d578063407133d2146102bd578063452ed4f1146102f557005b80631de3b450116101755780631de3b4501461021b57806323b872dd14610261578063313ce5671461028157005b806306fdde03146101a1578063095ea7b3146101cc57806318160ddd146101fc57005b3661019f57005b005b3480156101ad57600080fd5b506101b661059a565b6040516101c3919061196c565b60405180910390f35b3480156101d857600080fd5b506101ec6101e73660046119d2565b61062c565b60405190151581526020016101c3565b34801561020857600080fd5b506002545b6040519081526020016101c3565b34801561022757600080fd5b5060085461024e9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020016101c3565b34801561026d57600080fd5b506101ec61027c3660046119fe565b610646565b34801561028d57600080fd5b50604051601281526020016101c3565b3480156102a957600080fd5b506101ec6102b83660046119d2565b610755565b3480156102c957600080fd5b50600a546102dd906001600160a01b031681565b6040516001600160a01b0390911681526020016101c3565b34801561030157600080fd5b506007546102dd906001600160a01b031681565b34801561032157600080fd5b5061020d610330366004611a3f565b6001600160a01b031660009081526020819052604090205490565b34801561035757600080fd5b5061019f610794565b34801561036c57600080fd5b50600a546101ec9074010000000000000000000000000000000000000000900460ff1681565b34801561039e57600080fd5b5061019f6107a8565b3480156103b357600080fd5b506005546001600160a01b03166102dd565b3480156103d157600080fd5b506009546101ec9074010000000000000000000000000000000000000000900460ff1681565b34801561040357600080fd5b506009546102dd906001600160a01b031681565b34801561042357600080fd5b506101b6610849565b34801561043857600080fd5b5061019f610447366004611a3f565b610858565b34801561045857600080fd5b506101ec610a62565b34801561046d57600080fd5b506101ec61047c3660046119d2565b610be0565b34801561048d57600080fd5b506101ec61049c3660046119d2565b610c95565b3480156104ad57600080fd5b506008546102dd906001600160a01b031681565b3480156104cd57600080fd5b5061019f6104dc366004611a6a565b610d89565b3480156104ed57600080fd5b506009546101ec907501000000000000000000000000000000000000000000900460ff1681565b34801561052057600080fd5b5061020d61052f366004611abc565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561056657600080fd5b5061019f610575366004611a3f565b610f74565b34801561058657600080fd5b506006546102dd906001600160a01b031681565b6060600380546105a990611af5565b80601f01602080910402602001604051908101604052809291908181526020018280546105d590611af5565b80156106225780601f106105f757610100808354040283529160200191610622565b820191906000526020600020905b81548152906001019060200180831161060557829003601f168201915b5050505050905090565b60003361063a818585611004565b60019150505b92915050565b60003361065485828561115c565b6009547501000000000000000000000000000000000000000000900460ff16156106885761068385858561120c565b610748565b600a5474010000000000000000000000000000000000000000900460ff161561073357600a546040517f487608580000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015286811660248301526044820186905290911690634876085890606401600060405180830381600087803b15801561071a57600080fd5b505af115801561072e573d6000803e3d6000fd5b505050505b61074885856107438888886113f9565b61120c565b60019150505b9392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061063a908290869061078f908790611b77565b611004565b61079c6115a3565b6107a660006115fd565b565b6107b06115a3565b600a5474010000000000000000000000000000000000000000900460ff1661081f5760405162461bcd60e51b815260206004820152601360248201527f616e7469626f74206e6f7420656e61626c65640000000000000000000000000060448201526064015b60405180910390fd5b600a80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6060600480546105a990611af5565b6108606115a3565b6001600160a01b03811661090f576040514790600090339083908381818185875af1925050503d80600081146108b2576040519150601f19603f3d011682016040523d82523d6000602084013e6108b7565b606091505b50509050806109085760405162461bcd60e51b815260206004820152600e60248201527f62616c616e6365206661696c65640000000000000000000000000000000000006044820152606401610816565b5050610a23565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610976573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099a9190611b8a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156109fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a219190611ba3565b505b6040516001600160a01b03821681527f1b55aa89925f3b7c6a5dd952eb781d4a95f2ad1906c3c0fbc8cfa5c5f1a3a0a99060200160405180910390a150565b6006546000906001600160a01b0316610abd5760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964207661756c74000000000000000000000000000000000000006044820152606401610816565b60065460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fecb70fb700000000000000000000000000000000000000000000000000000000179052905160009283926001600160a01b0390911691610b339190611bc0565b600060405180830381855afa9150503d8060008114610b6e576040519150601f19603f3d011682016040523d82523d6000602084013e610b73565b606091505b509150915081610bc55760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420726f756e6420656e640000000000000000000000000000006044820152606401610816565b80806020019051810190610bd99190611ba3565b9250505090565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610c7d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610816565b610c8a8286868403611004565b506001949350505050565b60095460009033907501000000000000000000000000000000000000000000900460ff1615610cce57610cc981858561120c565b61063a565b600a5474010000000000000000000000000000000000000000900460ff1615610d7957600a546040517f487608580000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015286811660248301526044820186905290911690634876085890606401600060405180830381600087803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050505b61063a81856107438488886113f9565b610d916115a3565b6006546001600160a01b031615610dea5760405162461bcd60e51b815260206004820152600d60248201527f616c7265616479207365747570000000000000000000000000000000000000006044820152606401610816565b600680546001600160a01b038086167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179091556008805461ffff8516740100000000000000000000000000000000000000009081027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff90921691909117909155600a80548415159092027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8316811790915582169116176318e02bd9610ebf6005546001600160a01b031690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015610f1857600080fd5b505af1158015610f2c573d6000803e3d6000fd5b5050600980547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555050505050565b610f7c6115a3565b6001600160a01b038116610ff85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610816565b611001816115fd565b50565b6001600160a01b03831661107f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610816565b6001600160a01b0382166110fb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610816565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461120657818110156111f95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610816565b6112068484848403611004565b50505050565b6001600160a01b0383166112885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610816565b6001600160a01b0382166113045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610816565b6001600160a01b038316600090815260208190526040902054818110156113935760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610816565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611206565b60095460009074010000000000000000000000000000000000000000900460ff168061144957506005546001600160a01b038581169116148061144957506005546001600160a01b038481169116145b6114955760405162461bcd60e51b815260206004820152601360248201527f74726164696e67206e6f742073746172746564000000000000000000000000006044820152606401610816565b5060065481906001600160a01b03161561074e576001600160a01b0384163014806114c857506001600160a01b03831630145b61074e576114d4610a62565b158015611500575060095474010000000000000000000000000000000000000000900460ff1615156001145b1561074e5761150d611667565b1561151a5761151a6116d6565b6007546001600160a01b038581169116148061154357506007546001600160a01b038481169116145b1561074e57600854600090612710906115789074010000000000000000000000000000000000000000900461ffff1685611bdc565b6115829190611bf3565b905061158e8184611c2e565b915061159b85308361120c565b509392505050565b6005546001600160a01b031633146107a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610816565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6007546000906001600160a01b031633148015906116a157506009547501000000000000000000000000000000000000000000900460ff16155b80156116d157506116b46012600a611d61565b6116bf906001611bdc565b30600090815260208190526040902054115b905090565b6009547501000000000000000000000000000000000000000000900460ff16156117425760405162461bcd60e51b815260206004820152600e60248201527f7265656e7472616e742063616c6c0000000000000000000000000000000000006044820152606401610816565b600980547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117b7576117b7611d70565b6001600160a01b03928316602091820292909201810191909152600954604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184d9190611d9f565b8160018151811061186057611860611d70565b6001600160a01b03928316602091820292909201015260095416635c11d79561189e306001600160a01b031660009081526020819052604090205490565b6006546040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526118eb929160009187916001600160a01b0316904290600401611dbc565b600060405180830381600087803b15801561190557600080fd5b505af1158015611919573d6000803e3d6000fd5b5050600980547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055505050565b60005b8381101561196357818101518382015260200161194b565b50506000910152565b602081526000825180602084015261198b816040850160208701611948565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6001600160a01b038116811461100157600080fd5b600080604083850312156119e557600080fd5b82356119f0816119bd565b946020939093013593505050565b600080600060608486031215611a1357600080fd5b8335611a1e816119bd565b92506020840135611a2e816119bd565b929592945050506040919091013590565b600060208284031215611a5157600080fd5b813561074e816119bd565b801515811461100157600080fd5b600080600060608486031215611a7f57600080fd5b8335611a8a816119bd565b9250602084013561ffff81168114611aa157600080fd5b91506040840135611ab181611a5c565b809150509250925092565b60008060408385031215611acf57600080fd5b8235611ada816119bd565b91506020830135611aea816119bd565b809150509250929050565b600181811c90821680611b0957607f821691505b602082108103611b42577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561064057610640611b48565b600060208284031215611b9c57600080fd5b5051919050565b600060208284031215611bb557600080fd5b815161074e81611a5c565b60008251611bd2818460208701611948565b9190910192915050565b808202811582820484141761064057610640611b48565b600082611c29577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8181038181111561064057610640611b48565b600181815b80851115611c9a57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611c8057611c80611b48565b80851615611c8d57918102915b93841c9390800290611c46565b509250929050565b600082611cb157506001610640565b81611cbe57506000610640565b8160018114611cd45760028114611cde57611cfa565b6001915050610640565b60ff841115611cef57611cef611b48565b50506001821b610640565b5060208310610133831016604e8410600b8410161715611d1d575081810a610640565b611d278383611c41565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611d5957611d59611b48565b029392505050565b600061074e60ff841683611ca2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215611db157600080fd5b815161074e816119bd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0c5784516001600160a01b031683529383019391830191600101611de7565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205c9f1d22e7545767bb230df9c456c5d00c64eafc88dce4b9970987c7ef7b3afe64736f6c63430008130033
0x6080604052600680546001600160a01b031990811690915560078054909116905560088054604b60a21b6001600160b01b031991821617909155600980549091169055600a805460ff60a01b191690553480156200005c57600080fd5b506040516200286b3803806200286b8339810160408190526200007f91620006b9565b604080518082018252600480825263464f4d4360e01b6020808401829052845180860190955291845290830152906003620000bb8382620007b1565b506004620000ca8282620007b1565b505050620000e7620000e16200037560201b60201c565b62000379565b6200011981620000fa6012600a62000992565b62000107906001620009aa565b620001139087620009aa565b620003cb565b620001248162000492565b600a80546001600160a01b0319166001600160a01b0384169081179091556040516318e02bd960e01b81523360048201526318e02bd990602401600060405180830381600087803b1580156200017957600080fd5b505af11580156200018e573d6000803e3d6000fd5b5050600980546001600160a01b0319166001600160a01b0387169081179091556040805163c45a015560e01b8152905191935063c45a015592506004808201926020929091908290030181865afa158015620001ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002149190620009c4565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d9190620009c4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003119190620009c4565b600780546001600160a01b0319166001600160a01b039290921691909117905562000340308460001962000511565b6007546200035c9030906001600160a01b031660001962000511565b6200036b308060001962000511565b50505050620009f8565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004275760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600260008282546200043b9190620009e2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6200049c6200063e565b6001600160a01b038116620005035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200041e565b6200050e8162000379565b50565b6001600160a01b038316620005755760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200041e565b6001600160a01b038216620005d85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200041e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b505050565b6005546001600160a01b031633146200069a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200041e565b565b80516001600160a01b0381168114620006b457600080fd5b919050565b60008060008060808587031215620006d057600080fd5b84519350620006e2602086016200069c565b9250620006f2604086016200069c565b915062000702606086016200069c565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200073857607f821691505b6020821081036200075957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200063957600081815260208120601f850160051c81016020861015620007885750805b601f850160051c820191505b81811015620007a95782815560010162000794565b505050505050565b81516001600160401b03811115620007cd57620007cd6200070d565b620007e581620007de845462000723565b846200075f565b602080601f8311600181146200081d5760008415620008045750858301515b600019600386901b1c1916600185901b178555620007a9565b600085815260208120601f198616915b828110156200084e578886015182559484019460019091019084016200082d565b50858210156200086d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008d4578160001904821115620008b857620008b86200087d565b80851615620008c657918102915b93841c939080029062000898565b509250929050565b600082620008ed575060016200098c565b81620008fc575060006200098c565b8160018114620009155760028114620009205762000940565b60019150506200098c565b60ff8411156200093457620009346200087d565b50506001821b6200098c565b5060208310610133831016604e8410600b841016171562000965575081810a6200098c565b62000971838362000893565b80600019048211156200098857620009886200087d565b0290505b92915050565b6000620009a360ff841683620008dc565b9392505050565b80820281158282048414176200098c576200098c6200087d565b600060208284031215620009d757600080fd5b620009a3826200069c565b808201808211156200098c576200098c6200087d565b611e638062000a086000396000f3fe6080604052600436106101985760003560e01c80638da5cb5b116100e0578063a9059cbb11610084578063d830678611610061578063d8306786146104e1578063dd62ed3e14610514578063f2fde38b1461055a578063fbfa77cf1461057a57005b8063a9059cbb14610481578063b7bda68f146104a1578063d1afa2e8146104c157005b806395d89b41116100bd57806395d89b41146104175780639be65a601461042c5780639d27fd671461044c578063a457c2d71461046157005b80638da5cb5b146103a757806395645e34146103c5578063958c2e52146103f757005b8063395093511161014757806370a082311161012457806370a0823114610315578063715018a61461034b57806383f9bcda146103605780638b750c561461039257005b8063395093511461029d578063407133d2146102bd578063452ed4f1146102f557005b80631de3b450116101755780631de3b4501461021b57806323b872dd14610261578063313ce5671461028157005b806306fdde03146101a1578063095ea7b3146101cc57806318160ddd146101fc57005b3661019f57005b005b3480156101ad57600080fd5b506101b661059a565b6040516101c3919061196c565b60405180910390f35b3480156101d857600080fd5b506101ec6101e73660046119d2565b61062c565b60405190151581526020016101c3565b34801561020857600080fd5b506002545b6040519081526020016101c3565b34801561022757600080fd5b5060085461024e9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020016101c3565b34801561026d57600080fd5b506101ec61027c3660046119fe565b610646565b34801561028d57600080fd5b50604051601281526020016101c3565b3480156102a957600080fd5b506101ec6102b83660046119d2565b610755565b3480156102c957600080fd5b50600a546102dd906001600160a01b031681565b6040516001600160a01b0390911681526020016101c3565b34801561030157600080fd5b506007546102dd906001600160a01b031681565b34801561032157600080fd5b5061020d610330366004611a3f565b6001600160a01b031660009081526020819052604090205490565b34801561035757600080fd5b5061019f610794565b34801561036c57600080fd5b50600a546101ec9074010000000000000000000000000000000000000000900460ff1681565b34801561039e57600080fd5b5061019f6107a8565b3480156103b357600080fd5b506005546001600160a01b03166102dd565b3480156103d157600080fd5b506009546101ec9074010000000000000000000000000000000000000000900460ff1681565b34801561040357600080fd5b506009546102dd906001600160a01b031681565b34801561042357600080fd5b506101b6610849565b34801561043857600080fd5b5061019f610447366004611a3f565b610858565b34801561045857600080fd5b506101ec610a62565b34801561046d57600080fd5b506101ec61047c3660046119d2565b610be0565b34801561048d57600080fd5b506101ec61049c3660046119d2565b610c95565b3480156104ad57600080fd5b506008546102dd906001600160a01b031681565b3480156104cd57600080fd5b5061019f6104dc366004611a6a565b610d89565b3480156104ed57600080fd5b506009546101ec907501000000000000000000000000000000000000000000900460ff1681565b34801561052057600080fd5b5061020d61052f366004611abc565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561056657600080fd5b5061019f610575366004611a3f565b610f74565b34801561058657600080fd5b506006546102dd906001600160a01b031681565b6060600380546105a990611af5565b80601f01602080910402602001604051908101604052809291908181526020018280546105d590611af5565b80156106225780601f106105f757610100808354040283529160200191610622565b820191906000526020600020905b81548152906001019060200180831161060557829003601f168201915b5050505050905090565b60003361063a818585611004565b60019150505b92915050565b60003361065485828561115c565b6009547501000000000000000000000000000000000000000000900460ff16156106885761068385858561120c565b610748565b600a5474010000000000000000000000000000000000000000900460ff161561073357600a546040517f487608580000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015286811660248301526044820186905290911690634876085890606401600060405180830381600087803b15801561071a57600080fd5b505af115801561072e573d6000803e3d6000fd5b505050505b61074885856107438888886113f9565b61120c565b60019150505b9392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061063a908290869061078f908790611b77565b611004565b61079c6115a3565b6107a660006115fd565b565b6107b06115a3565b600a5474010000000000000000000000000000000000000000900460ff1661081f5760405162461bcd60e51b815260206004820152601360248201527f616e7469626f74206e6f7420656e61626c65640000000000000000000000000060448201526064015b60405180910390fd5b600a80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6060600480546105a990611af5565b6108606115a3565b6001600160a01b03811661090f576040514790600090339083908381818185875af1925050503d80600081146108b2576040519150601f19603f3d011682016040523d82523d6000602084013e6108b7565b606091505b50509050806109085760405162461bcd60e51b815260206004820152600e60248201527f62616c616e6365206661696c65640000000000000000000000000000000000006044820152606401610816565b5050610a23565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610976573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099a9190611b8a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156109fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a219190611ba3565b505b6040516001600160a01b03821681527f1b55aa89925f3b7c6a5dd952eb781d4a95f2ad1906c3c0fbc8cfa5c5f1a3a0a99060200160405180910390a150565b6006546000906001600160a01b0316610abd5760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964207661756c74000000000000000000000000000000000000006044820152606401610816565b60065460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fecb70fb700000000000000000000000000000000000000000000000000000000179052905160009283926001600160a01b0390911691610b339190611bc0565b600060405180830381855afa9150503d8060008114610b6e576040519150601f19603f3d011682016040523d82523d6000602084013e610b73565b606091505b509150915081610bc55760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420726f756e6420656e640000000000000000000000000000006044820152606401610816565b80806020019051810190610bd99190611ba3565b9250505090565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610c7d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610816565b610c8a8286868403611004565b506001949350505050565b60095460009033907501000000000000000000000000000000000000000000900460ff1615610cce57610cc981858561120c565b61063a565b600a5474010000000000000000000000000000000000000000900460ff1615610d7957600a546040517f487608580000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015286811660248301526044820186905290911690634876085890606401600060405180830381600087803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050505b61063a81856107438488886113f9565b610d916115a3565b6006546001600160a01b031615610dea5760405162461bcd60e51b815260206004820152600d60248201527f616c7265616479207365747570000000000000000000000000000000000000006044820152606401610816565b600680546001600160a01b038086167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179091556008805461ffff8516740100000000000000000000000000000000000000009081027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff90921691909117909155600a80548415159092027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8316811790915582169116176318e02bd9610ebf6005546001600160a01b031690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015610f1857600080fd5b505af1158015610f2c573d6000803e3d6000fd5b5050600980547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555050505050565b610f7c6115a3565b6001600160a01b038116610ff85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610816565b611001816115fd565b50565b6001600160a01b03831661107f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610816565b6001600160a01b0382166110fb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610816565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461120657818110156111f95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610816565b6112068484848403611004565b50505050565b6001600160a01b0383166112885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610816565b6001600160a01b0382166113045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610816565b6001600160a01b038316600090815260208190526040902054818110156113935760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610816565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611206565b60095460009074010000000000000000000000000000000000000000900460ff168061144957506005546001600160a01b038581169116148061144957506005546001600160a01b038481169116145b6114955760405162461bcd60e51b815260206004820152601360248201527f74726164696e67206e6f742073746172746564000000000000000000000000006044820152606401610816565b5060065481906001600160a01b03161561074e576001600160a01b0384163014806114c857506001600160a01b03831630145b61074e576114d4610a62565b158015611500575060095474010000000000000000000000000000000000000000900460ff1615156001145b1561074e5761150d611667565b1561151a5761151a6116d6565b6007546001600160a01b038581169116148061154357506007546001600160a01b038481169116145b1561074e57600854600090612710906115789074010000000000000000000000000000000000000000900461ffff1685611bdc565b6115829190611bf3565b905061158e8184611c2e565b915061159b85308361120c565b509392505050565b6005546001600160a01b031633146107a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610816565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6007546000906001600160a01b031633148015906116a157506009547501000000000000000000000000000000000000000000900460ff16155b80156116d157506116b46012600a611d61565b6116bf906001611bdc565b30600090815260208190526040902054115b905090565b6009547501000000000000000000000000000000000000000000900460ff16156117425760405162461bcd60e51b815260206004820152600e60248201527f7265656e7472616e742063616c6c0000000000000000000000000000000000006044820152606401610816565b600980547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117b7576117b7611d70565b6001600160a01b03928316602091820292909201810191909152600954604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184d9190611d9f565b8160018151811061186057611860611d70565b6001600160a01b03928316602091820292909201015260095416635c11d79561189e306001600160a01b031660009081526020819052604090205490565b6006546040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526118eb929160009187916001600160a01b0316904290600401611dbc565b600060405180830381600087803b15801561190557600080fd5b505af1158015611919573d6000803e3d6000fd5b5050600980547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055505050565b60005b8381101561196357818101518382015260200161194b565b50506000910152565b602081526000825180602084015261198b816040850160208701611948565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6001600160a01b038116811461100157600080fd5b600080604083850312156119e557600080fd5b82356119f0816119bd565b946020939093013593505050565b600080600060608486031215611a1357600080fd5b8335611a1e816119bd565b92506020840135611a2e816119bd565b929592945050506040919091013590565b600060208284031215611a5157600080fd5b813561074e816119bd565b801515811461100157600080fd5b600080600060608486031215611a7f57600080fd5b8335611a8a816119bd565b9250602084013561ffff81168114611aa157600080fd5b91506040840135611ab181611a5c565b809150509250925092565b60008060408385031215611acf57600080fd5b8235611ada816119bd565b91506020830135611aea816119bd565b809150509250929050565b600181811c90821680611b0957607f821691505b602082108103611b42577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561064057610640611b48565b600060208284031215611b9c57600080fd5b5051919050565b600060208284031215611bb557600080fd5b815161074e81611a5c565b60008251611bd2818460208701611948565b9190910192915050565b808202811582820484141761064057610640611b48565b600082611c29577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8181038181111561064057610640611b48565b600181815b80851115611c9a57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611c8057611c80611b48565b80851615611c8d57918102915b93841c9390800290611c46565b509250929050565b600082611cb157506001610640565b81611cbe57506000610640565b8160018114611cd45760028114611cde57611cfa565b6001915050610640565b60ff841115611cef57611cef611b48565b50506001821b610640565b5060208310610133831016604e8410600b8410161715611d1d575081810a610640565b611d278383611c41565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611d5957611d59611b48565b029392505050565b600061074e60ff841683611ca2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215611db157600080fd5b815161074e816119bd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0c5784516001600160a01b031683529383019391830191600101611de7565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205c9f1d22e7545767bb230df9c456c5d00c64eafc88dce4b9970987c7ef7b3afe64736f6c6343000813003300000000000000000000000000000000000000000000000000000041314cf0000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000f4f071eb637b64fc78c9ea87dace4445d119ca35000000000000000000000000c613426833a35471e3cc7b8b347b2b2150533d01