608060405234801561001057600080fd5b50600054610100900460ff168061002a575060005460ff16155b6100915760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff161580156100b3576000805461ffff19166101011790555b80156100c5576000805461ff00191690555b50611492806100d56000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806340c10f19116100b85780639fac68cb1161007c5780639fac68cb146102af578063a457c2d7146102c2578063a9059cbb146102d5578063bbaa0bd2146102e8578063dd62ed3e146102fb578063ef20accb1461033457600080fd5b806340c10f191461024557806370a0823114610258578063828a7649146102815780638f2839701461029457806395d89b41146102a757600080fd5b806318160ddd1161010a57806318160ddd146101dc57806323b872dd146101ee578063313ce567146102015780633730837c14610216578063395093511461021f5780633dfc918a1461023257600080fd5b806301bc45c91461014757806306fdde031461017c578063095ea7b3146101915780630fb5d8ab146101b45780631800aadb146101c9575b600080fd5b60075461015f9061010090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61018461033c565b6040516101739190611389565b6101a461019f36600461132d565b6103ce565b6040519015158152602001610173565b6101c76101c23660046111e1565b6103e4565b005b60085461015f906001600160a01b031681565b6004545b604051908152602001610173565b6101a46101fc366004611234565b6104b0565b60075460405160ff9091168152602001610173565b6101e060035481565b6101a461022d36600461132d565b61055a565b60095461015f906001600160a01b031681565b6101c761025336600461132d565b610596565b6101e06102663660046111e1565b6001600160a01b031660009081526001602052604090205490565b6101c761028f36600461126f565b610657565b6101c76102a23660046111e1565b6107f6565b6101846108a2565b6101c76102bd366004611356565b6108b1565b6101a46102d036600461132d565b61091f565b6101a46102e336600461132d565b6109b8565b6101c76102f63660046111e1565b6109c5565b6101e0610309366004611202565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101c7610a3b565b60606005805461034b9061140b565b80601f01602080910402602001604051908101604052809291908181526020018280546103779061140b565b80156103c45780601f10610399576101008083540402835291602001916103c4565b820191906000526020600020905b8154815290600101906020018083116103a757829003601f168201915b5050505050905090565b60006103db338484610b01565b50600192915050565b60075460408051808201909152600b81526a185d5d1a0819985a5b195960aa1b60208201529061010090046001600160a01b031633146104405760405162461bcd60e51b81526004016104379190611389565b60405180910390fd5b50600354600454106104945760405162461bcd60e51b815260206004820152601860248201527f6d617820746f74616c20737570706c79207265616368656400000000000000006044820152606401610437565b6104ad816004546003546104a891906113f4565b610c26565b50565b60006104bd848484610d05565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156105425760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610437565b61054f8533858403610b01565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103db9185906105919086906113dc565b610b01565b60075460408051808201909152600b81526a185d5d1a0819985a5b195960aa1b60208201529061010090046001600160a01b031633146105e95760405162461bcd60e51b81526004016104379190611389565b50600354816004546105fb91906113dc565b11156106495760405162461bcd60e51b815260206004820152601960248201527f6578636565646564206d617820746f74616c20737570706c79000000000000006044820152606401610437565b6106538282610c26565b5050565b600054610100900460ff1680610670575060005460ff16155b6106d35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610437565b600054610100900460ff161580156106f5576000805461ffff19166101011790555b6106fe8a610f5a565b600084116107465760405162461bcd60e51b81526020600482015260156024820152747a65726f206d617820746f74616c20737570706c7960581b6044820152606401610437565b60078054610100600160a81b0319166101006001600160a01b038d1602179055600384905561077760058a8a6110e5565b50610784600688886110e5565b506007805460ff191660ff87161790556001600160a01b038316156107ad576107ad8385610c26565b6001600160a01b038216156107d857600980546001600160a01b0319166001600160a01b0384161790555b80156107ea576000805461ff00191690555b50505050505050505050565b60075460408051808201909152600b81526a185d5d1a0819985a5b195960aa1b60208201529061010090046001600160a01b031633146108495760405162461bcd60e51b81526004016104379190611389565b50600880546001600160a01b0319166001600160a01b03838116918217909255600754604051919261010090910416907fabadef65e57dcbc94a1edc7f70476a3abca7121015c7358dd71b9ad8e434895f90600090a350565b60606006805461034b9061140b565b60075460408051808201909152600b81526a185d5d1a0819985a5b195960aa1b60208201529061010090046001600160a01b031633146109045760405162461bcd60e51b81526004016104379190611389565b508015610915576106533083610f9f565b6106533383610f9f565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156109a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610437565b6109ae3385858403610b01565b5060019392505050565b60006103db338484610d05565b60075460408051808201909152600b81526a185d5d1a0819985a5b195960aa1b60208201529061010090046001600160a01b03163314610a185760405162461bcd60e51b81526004016104379190611389565b50600980546001600160a01b0319166001600160a01b0392909216919091179055565b60085460408051808201909152600b81526a185d5d1a0819985a5b195960aa1b6020820152906001600160a01b03163314610a895760405162461bcd60e51b81526004016104379190611389565b506008546007546040516001600160a01b0392831692610100909204909116907f7cb6040a31264d0f3fa4024e96aa137a3c4afbd8bb1162e1046ee09c5d7e162a90600090a36008805460078054610100600160a81b0319166101006001600160a01b038416021790556001600160a01b0319169055565b6001600160a01b038316610b635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610437565b6001600160a01b038216610bc45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610437565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216610c7c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610437565b8060046000828254610c8e91906113dc565b90915550506001600160a01b03821660009081526001602052604081208054839290610cbb9084906113dc565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038316610d695760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610437565b6001600160a01b038216610dcb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610437565b6009546001600160a01b031615610e51576009546040516319b89ec360e21b81523060048201526001600160a01b038581166024830152848116604483015260648201849052909116906366e27b0c90608401600060405180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050505b6001600160a01b03831660009081526001602052604090205481811015610ec95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610437565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290610f009084906113dc565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f4c91815260200190565b60405180910390a350505050565b6001600160a01b0381166104ad5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401610437565b6001600160a01b038216610fff5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610437565b6001600160a01b038216600090815260016020526040902054818110156110735760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610437565b6001600160a01b03831660009081526001602052604081208383039055600480548492906110a29084906113f4565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610c19565b8280546110f19061140b565b90600052602060002090601f0160209004810192826111135760008555611159565b82601f1061112c5782800160ff19823516178555611159565b82800160010185558215611159579182015b8281111561115957823582559160200191906001019061113e565b50611165929150611169565b5090565b5b80821115611165576000815560010161116a565b80356001600160a01b038116811461119557600080fd5b919050565b60008083601f8401126111ab578182fd5b50813567ffffffffffffffff8111156111c2578182fd5b6020830191508360208285010111156111da57600080fd5b9250929050565b6000602082840312156111f2578081fd5b6111fb8261117e565b9392505050565b60008060408385031215611214578081fd5b61121d8361117e565b915061122b6020840161117e565b90509250929050565b600080600060608486031215611248578081fd5b6112518461117e565b925061125f6020850161117e565b9150604084013590509250925092565b600080600080600080600080600060e08a8c03121561128c578485fd5b6112958a61117e565b985060208a013567ffffffffffffffff808211156112b1578687fd5b6112bd8d838e0161119a565b909a50985060408c01359150808211156112d5578687fd5b506112e28c828d0161119a565b90975095505060608a013560ff811681146112fb578485fd5b935060808a0135925061131060a08b0161117e565b915061131e60c08b0161117e565b90509295985092959850929598565b6000806040838503121561133f578182fd5b6113488361117e565b946020939093013593505050565b60008060408385031215611368578182fd5b823591506020830135801515811461137e578182fd5b809150509250929050565b6000602080835283518082850152825b818110156113b557858101830151858201604001528201611399565b818111156113c65783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156113ef576113ef611446565b500190565b60008282101561140657611406611446565b500390565b600181811c9082168061141f57607f821691505b6020821081141561144057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea264697066735822122012d37f96ccc2cebf60c524828546376cfb5de455ceb0e66029ff05588099dfe764736f6c63430008040033