0x6080604052600436106104265760003560e01c806373ddf08e11610227578063c28089541161012d578063e2fd002a116100b0578063f2c816ae11610077578063f2c816ae14610c8f578063f2fde38b14610caf578063f88b0e4614610ccf578063fe002ec214610ce5578063fe575a8714610cfa57005b8063e2fd002a14610c04578063e69e03ee14610c24578063ebddcc1d14610c39578063f00df36514610c59578063f0cc761214610c6f57005b8063d11edf74116100f4578063d11edf7414610b49578063d28d885214610b69578063d51f383b14610b7e578063db886f2314610b9e578063dd62ed3e14610bbe57005b8063c280895414610aca578063c3a3c03214610adf578063c3f4f54f14610af4578063cd979a7e14610b09578063d0291d6614610b2957005b806395d89b41116101b5578063a9059cbb1161017c578063a9059cbb14610a35578063b09f126614610a55578063b58a56cd14610a6a578063b766a38614610a8a578063c054f2f414610aaa57005b806395d89b41146109ab578063998a8668146109c05780639bf65770146109d55780639fa62d5f146109f5578063a457c2d714610a1557005b80638650e92a116101f95780638650e92a1461094357806386d0ada814610959578063887c60fb14610973578063893d20e81461098d5780638da5cb5b1461098d57005b806373ddf08e146108c057806375a1017c146108e0578063762bb282146109185780637b9e987a1461092e57005b80633ab0e29d1161032c57806358e55365116102ba5780636ea4caab116102815780636ea4caab1461080b5780636f89e4091461082b57806370a0823114610855578063715018a61461088b5780637335307b146108a057005b806358e55365146107ab5780635b80f625146107c15780635c69f690146106695780635ebbc3ca146107d6578063643daaea146107eb57005b806344f3c83a116102fe57806344f3c83a146107205780634ada218b146107365780634cdaf0ae146107555780634f91e48c1461077557806357ad67d11461078b57005b80633ab0e29d146106be5780633cc39b7a146106de5780633da56f18146106f45780634089b1701461070a57005b8063243b529a116103b4578063313ce5671161037b578063313ce5671461063557806332ac487f146106495780633478154b1461066957806335e82f3a1461067e578063395093511461069e57005b8063243b529a14610572578063269a6aae146105875780632973ef2d1461059d5780633054f8a314610606578063311a86971461062057005b80630fd99e16116103f85780630fd99e16146104d657806314e91377146104fe57806318160ddd1461051e5780631eb25d131461053d57806323b872dd1461055257005b80630241047b1461042f57806306fdde031461044f57806309218ee71461047a578063095ea7b3146104a657005b3661042d57005b005b34801561043b57600080fd5b5061042d61044a366004613881565b610d1a565b34801561045b57600080fd5b50610464610e23565b604051610471919061389a565b60405180910390f35b34801561048657600080fd5b50601f546104949060ff1681565b60405160ff9091168152602001610471565b3480156104b257600080fd5b506104c66104c1366004613904565b610eb5565b6040519015158152602001610471565b3480156104e257600080fd5b506104eb601881565b60405161ffff9091168152602001610471565b34801561050a57600080fd5b5061042d61051936600461393e565b610ecc565b34801561052a57600080fd5b506016545b604051908152602001610471565b34801561054957600080fd5b5061052f610f18565b34801561055e57600080fd5b506104c661056d36600461395b565b610f34565b34801561057e57600080fd5b5061042d610fcb565b34801561059357600080fd5b5061052f60125481565b3480156105a957600080fd5b50601a546040805160ff6301000000840481168252640100000000840481166020830152600160281b84048116928201929092528183166060820152610100830482166080820152620100009092041660a082015260c001610471565b34801561061257600080fd5b506029546104c69060ff1681565b34801561062c57600080fd5b50610494601881565b34801561064157600080fd5b506009610494565b34801561065557600080fd5b5061052f61066436600461399c565b61100e565b34801561067557600080fd5b506104eb600081565b34801561068a57600080fd5b5061042d61069936600461399c565b611066565b3480156106aa57600080fd5b506104c66106b9366004613904565b6110aa565b3480156106ca57600080fd5b5061042d6106d936600461399c565b6110e1565b3480156106ea57600080fd5b5061052f60245481565b34801561070057600080fd5b5061052f60135481565b34801561071657600080fd5b5061052f601e5481565b34801561072c57600080fd5b5061052f602a5481565b34801561074257600080fd5b50602b546104c690610100900460ff1681565b34801561076157600080fd5b5061042d61077036600461399c565b61113c565b34801561078157600080fd5b5061052f60185481565b34801561079757600080fd5b5061042d6107a63660046139cf565b61119f565b3480156107b757600080fd5b5061052f60205481565b3480156107cd57600080fd5b5060265461052f565b3480156107e257600080fd5b5061042d6112d2565b3480156107f757600080fd5b5061042d610806366004613881565b61139f565b34801561081757600080fd5b5061042d610826366004613881565b6113ea565b34801561083757600080fd5b5061084061143f565b60408051928352602083019190915201610471565b34801561086157600080fd5b5061052f61087036600461399c565b6001600160a01b031660009081526001602052604090205490565b34801561089757600080fd5b5061042d61147c565b3480156108ac57600080fd5b506104c66108bb36600461399c565b6114ff565b3480156108cc57600080fd5b5061042d6108db366004613a43565b61150c565b3480156108ec57600080fd5b50601454610900906001600160a01b031681565b6040516001600160a01b039091168152602001610471565b34801561092457600080fd5b5061052f60175481565b34801561093a57600080fd5b5061042d61156c565b34801561094f57600080fd5b5061052f601c5481565b34801561096557600080fd5b50602b546104c69060ff1681565b34801561097f57600080fd5b506027546104c69060ff1681565b34801561099957600080fd5b506000546001600160a01b0316610900565b3480156109b757600080fd5b506104646115bf565b3480156109cc57600080fd5b5061042d6115ce565b3480156109e157600080fd5b5061042d6109f036600461393e565b61171d565b348015610a0157600080fd5b5061042d610a10366004613a5e565b611769565b348015610a2157600080fd5b506104c6610a30366004613904565b6118eb565b348015610a4157600080fd5b506104c6610a50366004613904565b611967565b348015610a6157600080fd5b50610464611974565b348015610a7657600080fd5b5061042d610a8536600461399c565b611a02565b348015610a9657600080fd5b5061042d610aa536600461393e565b611a5d565b348015610ab657600080fd5b50602354610900906001600160a01b031681565b348015610ad657600080fd5b5061042d611aa9565b348015610aeb57600080fd5b5061052f611ab2565b348015610b0057600080fd5b5061052f611ad2565b348015610b1557600080fd5b5061042d610b2436600461399c565b611b10565b348015610b3557600080fd5b5061042d610b44366004613b23565b611b54565b348015610b5557600080fd5b5061042d610b64366004613881565b611ba6565b348015610b7557600080fd5b50610464611be4565b348015610b8a57600080fd5b5061042d610b99366004613881565b611bf1565b348015610baa57600080fd5b50601554610900906001600160a01b031681565b348015610bca57600080fd5b5061052f610bd9366004613b87565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610c1057600080fd5b5061042d610c1f366004613881565b611c7d565b348015610c3057600080fd5b5061052f611d02565b348015610c4557600080fd5b5061042d610c5436600461393e565b611d68565b348015610c6557600080fd5b5061052f601d5481565b348015610c7b57600080fd5b5061042d610c8a36600461399c565b611f82565b348015610c9b57600080fd5b5061042d610caa36600461399c565b611fdd565b348015610cbb57600080fd5b5061042d610cca36600461399c565b612021565b348015610cdb57600080fd5b5061052f60285481565b348015610cf157600080fd5b5061042d61211a565b348015610d0657600080fd5b506104c6610d1536600461399c565b612178565b33610d2d6000546001600160a01b031690565b6001600160a01b031614610d5c5760405162461bcd60e51b8152600401610d5390613bc0565b60405180910390fd5b602054811115610d6b57600080fd5b8060206000828254610d7d9190613c0b565b90915550506014546001600160a01b03166108fc6064610d9e846032613c22565b610da89190613c41565b6040518115909202916000818181858888f19350505050158015610dd0573d6000803e3d6000fd5b506015546001600160a01b03166108fc6064610ded846032613c22565b610df79190613c41565b6040518115909202916000818181858888f19350505050158015610e1f573d6000803e3d6000fd5b5050565b6060600f8054610e3290613c63565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5e90613c63565b8015610eab5780601f10610e8057610100808354040283529160200191610eab565b820191906000526020600020905b815481529060010190602001808311610e8e57829003601f168201915b5050505050905090565b6000610ec23384846121a1565b5060015b92915050565b33610edf6000546001600160a01b031690565b6001600160a01b031614610f055760405162461bcd60e51b8152600401610d5390613bc0565b6027805460ff1916911515919091179055565b610f246009600a613d7b565b610f3190620f4240613c22565b81565b6000610f41848484612294565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610fac5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610d53565b610fc08533610fbb8685613c0b565b6121a1565b506001949350505050565b33610fde6000546001600160a01b031690565b6001600160a01b0316146110045760405162461bcd60e51b8152600401610d5390613bc0565b61100c6124f1565b565b6000611019826114ff565b1561103a57506001600160a01b031660009081526022602052604090205490565b6001600160a01b03821660009081526022602052604090205461105c83612631565b610ec69190613d8a565b336110796000546001600160a01b031690565b6001600160a01b03161461109f5760405162461bcd60e51b8152600401610d5390613bc0565b610e1f600d826126b7565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610ec2918590610fbb908690613d8a565b336110f46000546001600160a01b031690565b6001600160a01b03161461111a5760405162461bcd60e51b8152600401610d5390613bc0565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b3361114f6000546001600160a01b031690565b6001600160a01b0316146111755760405162461bcd60e51b8152600401610d5390613bc0565b602b80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b336111b26000546001600160a01b031690565b6001600160a01b0316146111d85760405162461bcd60e51b8152600401610d5390613bc0565b6000846111e58789613da2565b6111ef9190613da2565b90508060ff166064146112535760405162461bcd60e51b815260206004820152602660248201527f6275726e2b6c69712b6d61726b6574696e67206e6565647320746f20657175616044820152656c203130302560d01b6064820152608401610d53565b50601a805460ff928316620100000262ff0000199484166101000261ffff19978516600160281b029790971665ff000000ffff199885166401000000000264ff00000000199a86166301000000029a909a1664ffff00000019909316929092179890981796909616959095179216919091179190911716919091179055565b336112e56000546001600160a01b031690565b6001600160a01b03161461130b5760405162461bcd60e51b8152600401610d5390613bc0565b602c5442101561132d5760405162461bcd60e51b8152600401610d5390613dc7565b61133961070842613d8a565b602c556014546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611389576040519150601f19603f3d011682016040523d82523d6000602084013e61138e565b606091505b505090508061139c57600080fd5b50565b336113b26000546001600160a01b031690565b6001600160a01b0316146113d85760405162461bcd60e51b8152600401610d5390613bc0565b61139c6113e54283613d8a565b6126cc565b336113fd6000546001600160a01b031690565b6001600160a01b0316146114235760405162461bcd60e51b8152600401610d5390613bc0565b61142f6009600a613d7b565b6114399082613c22565b60195550565b60008061144e6009600a613d7b565b60175461145b9190613c41565b6114676009600a613d7b565b6018546114749190613c41565b915091509091565b3361148f6000546001600160a01b031690565b6001600160a01b0316146114b55760405162461bcd60e51b8152600401610d5390613bc0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610ec6600b836126df565b3361151f6000546001600160a01b031690565b6001600160a01b0316146115455760405162461bcd60e51b8152600401610d5390613bc0565b60648160ff16111561155657600080fd5b601f805460ff191660ff92909216919091179055565b3361157f6000546001600160a01b031690565b6001600160a01b0316146115a55760405162461bcd60e51b8152600401610d5390613bc0565b602b805461ff00191661010017905542601155565b905090565b606060108054610e3290613c63565b336115e16000546001600160a01b031690565b6001600160a01b0316146116075760405162461bcd60e51b8152600401610d5390613bc0565b602c544210156116295760405162461bcd60e51b8152600401610d5390613dc7565b602b546040516370a0823160e01b8152306004820152620100009091046001600160a01b03169060009082906370a0823190602401602060405180830381865afa15801561167b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169f9190613df1565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af11580156116f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117189190613e0a565b505050565b336117306000546001600160a01b031690565b6001600160a01b0316146117565760405162461bcd60e51b8152600401610d5390613bc0565b602b805460ff1916911515919091179055565b3361177c6000546001600160a01b031690565b6001600160a01b0316146117a25760405162461bcd60e51b8152600401610d5390613bc0565b60646016546117b19190613c41565b81106117bc57600080fd5b6117c86009600a613d7b565b6117d29083613c22565b91506117e06009600a613d7b565b6117ea9082613c22565b90506000601860ff166016546118009190613c41565b90506000601861ffff166016546118179190613c41565b90508184101561187d5760405162461bcd60e51b815260206004820152602b60248201527f6e657742616c616e63654c696d6974206e6565647320746f206265206174206c60448201526a19585cdd081d185c99d95d60aa1b6064820152608401610d53565b808310156118de5760405162461bcd60e51b815260206004820152602860248201527f6e657753656c6c4c696d6974206e6565647320746f206265206174206c6561736044820152671d081d185c99d95d60c21b6064820152608401610d53565b5050601791909155601855565b3360009081526002602090815260408083206001600160a01b03861684529091528120548281101561194e5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610d53565b61195d3385610fbb8685613c0b565b5060019392505050565b6000610ec2338484612294565b6010805461198190613c63565b80601f01602080910402602001604051908101604052809291908181526020018280546119ad90613c63565b80156119fa5780601f106119cf576101008083540402835291602001916119fa565b820191906000526020600020905b8154815290600101906020018083116119dd57829003601f168201915b505050505081565b33611a156000546001600160a01b031690565b6001600160a01b031614611a3b5760405162461bcd60e51b8152600401610d5390613bc0565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b33611a706000546001600160a01b031690565b6001600160a01b031614611a965760405162461bcd60e51b8152600401610d5390613bc0565b6029805460ff1916911515919091179055565b61100c33612701565b6000602c54421015611acc5742602c546115ba9190613c0b565b50600090565b6000611ae06009600a613d7b565b601654611aef6009600a613d7b565b611afc90620f4240613c22565b611b069190613c0b565b6115ba9190613c41565b33611b236000546001600160a01b031690565b6001600160a01b031614611b495760405162461bcd60e51b8152600401610d5390613bc0565b610e1f600582612185565b33611b676000546001600160a01b031690565b6001600160a01b031614611b8d5760405162461bcd60e51b8152600401610d5390613bc0565b600f611b998382613e6d565b5060106117188282613e6d565b33611bb96000546001600160a01b031690565b6001600160a01b031614611bdf5760405162461bcd60e51b8152600401610d5390613bc0565b602655565b600f805461198190613c63565b33611c046000546001600160a01b031690565b6001600160a01b031614611c2a5760405162461bcd60e51b8152600401610d5390613bc0565b8015611c785760405162461bcd60e51b815260206004820152601760248201527f53656c6c204c6f636b2074696d6520746f6f20686967680000000000000000006044820152606401610d53565b602855565b33611c906000546001600160a01b031690565b6001600160a01b031614611cb65760405162461bcd60e51b8152600401610d5390613bc0565b8015611cfd5760405162461bcd60e51b8152602060048201526016602482015275084eaf24098dec6d640e8d2daca40e8dede40d0d2ced60531b6044820152606401610d53565b602a55565b601654600090815b611d14600b6129b2565b811015611d625760016000611d2a600b846129bc565b6001600160a01b03168152602081019190915260400160002054611d4e9083613c0b565b915080611d5a81613f2d565b915050611d0a565b50919050565b33611d7b6000546001600160a01b031690565b6001600160a01b031614611da15760405162461bcd60e51b8152600401610d5390613bc0565b602c54421015611dc35760405162461bcd60e51b8152600401610d5390613dc7565b611dcf61070842613d8a565b602c55602b546040516370a0823160e01b8152306004820152620100009091046001600160a01b03169060009082906370a0823190602401602060405180830381865afa158015611e24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e489190613df1565b601b5460405163095ea7b360e01b81526001600160a01b0391821660048201526024810183905291925083169063095ea7b3906044016020604051808303816000875af1158015611e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec19190613e0a565b50601b5460405163af2979eb60e01b815247916001600160a01b03169063af2979eb90611efd9030908690600090819084904290600401613f46565b6020604051808303816000875af1158015611f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f409190613df1565b506000611f4d8247613c0b565b90508415611f6357611f5e816129c8565b611f7b565b8060206000828254611f759190613d8a565b90915550505b5050505050565b33611f956000546001600160a01b031690565b6001600160a01b031614611fbb5760405162461bcd60e51b8152600401610d5390613bc0565b602380546001600160a01b0319166001600160a01b0392909216919091179055565b33611ff06000546001600160a01b031690565b6001600160a01b0316146120165760405162461bcd60e51b8152600401610d5390613bc0565b610e1f600d82612185565b336120346000546001600160a01b031690565b6001600160a01b03161461205a5760405162461bcd60e51b8152600401610d5390613bc0565b6001600160a01b0381166120bf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d53565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3361212d6000546001600160a01b031690565b6001600160a01b0316146121535760405162461bcd60e51b8152600401610d5390613bc0565b6020805460009091556014546001600160a01b03166108fc6064610d9e846032613c22565b6000610ec6600d836126df565b600061219a836001600160a01b038416612a94565b9392505050565b6001600160a01b0383166121eb5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610d53565b6001600160a01b0382166122335760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610d53565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166122df5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610d53565b6001600160a01b0382166123285760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610d53565b60006123356005856126df565b8061234657506123466005846126df565b905060006001600160a01b03851630148061236957506001600160a01b03841630145b601b54601a549192506001600160a01b0390811691600091888116600160301b909204161480156123ab5750816001600160a01b0316866001600160a01b0316145b806123e65750601a546001600160a01b03878116600160301b909204161480156123e65750816001600160a01b0316876001600160a01b0316145b601a549091506000906001600160a01b03898116600160301b9092041614806124205750826001600160a01b0316886001600160a01b0316145b601a549091506000906001600160a01b03898116600160301b90920416148061245a5750836001600160a01b0316886001600160a01b0316145b905084806124655750825b8061246d5750855b156124825761247d898989612ae3565b6124e6565b602b54610100900460ff166124d95760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610d53565b6124e68989898585612bae565b505050505050505050565b6025805460ff191660019081179091553060009081526020919091526040812054601a5490919061253790600160281b810460ff90811691640100000000900416613da2565b60ff1690506000602654905080831080612553575061ffff8216155b1561256057505050612625565b601a5460009061ffff84169061258190640100000000900460ff1684613c22565b61258b9190613c41565b905060006125998284613c0b565b905060006125a8600284613c41565b905060006125b68285613c0b565b905060006125c48483613d8a565b9050476125d082613346565b60006125dc8247613c0b565b90506000836125eb8684613c22565b6125f59190613c41565b9050612601868261349f565b600061260d8447613c0b565b9050612618816129c8565b5050505050505050505050505b6025805460ff19169055565b6001600160a01b038116600090815260016020526040812054601c54829161265891613c22565b6001600160a01b0384166000908152602160205260409020549091508110156126845750600092915050565b6001600160a01b038316600090815260216020526040902054600160401b906126ad9083613c0b565b61219a9190613c41565b600061219a836001600160a01b03841661354e565b602c5481116126da57600080fd5b602c55565b6001600160a01b0381166000908152600183016020526040812054151561219a565b601b54600160a01b900460ff161561271857600080fd5b601b805460ff60a01b1916600160a01b1790556000612736826114ff565b1561275e57506001600160a01b038116600090815260226020526040812080549190556127de565b600061276983612631565b6001600160a01b038416600090815260016020526040902054601c5491925061279191613c22565b6001600160a01b0384166000908152602160209081526040808320939093556022905220546127c1908290613d8a565b6001600160a01b0384166000908152602260205260408120559150505b806000036127f7575050601b805460ff60a01b19169055565b80601e60008282546128099190613d8a565b90915550506040805160028082526060820183526000926020830190803683375050601b54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289c9190613f81565b816000815181106128af576128af613f9e565b6001600160a01b0392831660209182029290920101526023548251911690829060019081106128e0576128e0613f9e565b6001600160a01b039283166020918202929092010152601b5460405163b6f9de9560e01b815291169063b6f9de9590849061292690600090869089904290600401613ff8565b6000604051808303818588803b15801561293f57600080fd5b505af1158015612953573d6000803e3d6000fd5b5050604080518681526001600160a01b03881660208201527f80a489adad6e8e00b344a3e9042e6aff0ae286ce1376918078a67bbce8b905b394500191506129989050565b60405180910390a15050601b805460ff60a01b1916905550565b6000610ec6825490565b600061219a838361363b565b601f546000906064906129de9060ff1684613c22565b6129e89190613c41565b905060006129f68284613c0b565b90508160206000828254612a0a9190613d8a565b909155505080156117185780601d6000828254612a279190613d8a565b9091555060009050612a37611d02565b905080600003612a5e578160206000828254612a539190613d8a565b90915550612a8e9050565b80612a6d600160401b84613c22565b612a779190613c41565b601c6000828254612a889190613d8a565b90915550505b50505050565b6000818152600183016020526040812054612adb57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610ec6565b506000610ec6565b6001600160a01b03831660009081526001602052604090205481811015612b475760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610d53565b612b5184836136c1565b612b5b8383613782565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ba091815260200190565b60405180910390a350505050565b6001600160a01b0380851660009081526001602052604080822054928816825290205484811015612c1c5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610d53565b60008315612dcf57612c2f6007896126df565b612cc4576001600160a01b03881660009081526003602052604090205442101580612c5c575060275460ff165b612c9d5760405162461bcd60e51b815260206004820152601260248201527153656c6c657220696e2073656c6c4c6f636b60701b6044820152606401610d53565b602854612caa9042613d8a565b6001600160a01b0389166000908152600360205260409020555b601854861115612d085760405162461bcd60e51b815260206004820152600f60248201526e223ab6b810383937ba32b1ba34b7b760891b6044820152606401610d53565b612d13600d896126df565b15612d575760405162461bcd60e51b81526020600482015260146024820152734164647265737320626c61636b6c69737465642160601b6044820152606401610d53565b601254601154612d679190613d8a565b4211158015612d7857506013546001145b15612dbe57612d88600d89612185565b506040516001600160a01b038916907f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135190600090a25b50601a54610100900460ff166131e3565b8415612fe057612de06009886126df565b612e73576001600160a01b03871660009081526004602052604090205442101580612e0d575060295460ff165b612e4c5760405162461bcd60e51b815260206004820152601060248201526f427579657220696e206275794c6f636b60801b6044820152606401610d53565b602a54612e599042613d8a565b6001600160a01b0388166000908152600460205260409020555b601754612e808785613d8a565b1115612ec15760405162461bcd60e51b815260206004820152601060248201526f3bb430b63290383937ba32b1ba34b7b760811b6044820152606401610d53565b601954861115612f1e5760405162461bcd60e51b815260206004820152602260248201527f547820616d6f756e7420657863656564696e67206d61782062757920616d6f756044820152611b9d60f21b6064820152608401610d53565b612f29600d886126df565b15612f6d5760405162461bcd60e51b81526020600482015260146024820152734164647265737320626c61636b6c69737465642160601b6044820152606401610d53565b601254601154612f7d9190613d8a565b4211158015612f8e57506013546001145b15612fd457612f9e600d88612185565b506040516001600160a01b038816907f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135190600090a25b50601a5460ff166131e3565b612fec6009600a613d7b565b8611612ffb57612ffb88612701565b6017546130088785613d8a565b11156130495760405162461bcd60e51b815260206004820152601060248201526f3bb430b63290383937ba32b1ba34b7b760811b6044820152606401610d53565b6130546007896126df565b6130be576001600160a01b03881660009081526003602052604090205442101580613081575060275460ff165b6130be5760405162461bcd60e51b815260206004820152600e60248201526d53656e64657220696e204c6f636b60901b6044820152606401610d53565b6130c9600d896126df565b156131165760405162461bcd60e51b815260206004820152601b60248201527f53656e646572206164647265737320626c61636b6c69737465642100000000006044820152606401610d53565b613121600d886126df565b1561316e5760405162461bcd60e51b815260206004820152601e60248201527f526563697069656e74206164647265737320626c61636b6c69737465642100006044820152606401610d53565b60125460115461317e9190613d8a565b421115801561318f57506013546001145b156131d55761319f600d89612185565b506040516001600160a01b038916907f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135190600090a25b50601a5462010000900460ff165b601a546001600160a01b03898116600160301b909204161480159061320b5750602b5460ff16155b801561321a575060255460ff16155b80156132235750835b15613230576132306124f1565b600061324c8783601a60039054906101000a900460ff1661384d565b601a54909150600090613280908990859061327b9060ff6401000000008204811691600160281b900416613da2565b61384d565b9050600061328e8284613d8a565b613298908a613c0b565b90506132a48b8a6136c1565b30600090815260016020526040812080548492906132c3908490613d8a565b9250508190555082601660008282546132dc9190613c0b565b909155506132ec90508a82613782565b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161333191815260200190565b60405180910390a35050505050505050505050565b601b5461335e9030906001600160a01b0316836121a1565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061339357613393613f9e565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156133ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134109190613f81565b8160018151811061342357613423613f9e565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b815291169063791ac9479061346990859060009086903090429060040161402d565b600060405180830381600087803b15801561348357600080fd5b505af1158015613497573d6000803e3d6000fd5b505050505050565b80602460008282546134b19190613d8a565b9091555050601b546134ce9030906001600160a01b0316846121a1565b601b5460405163f305d71960e01b81526001600160a01b039091169063f305d71990839061350b9030908790600090819084904290600401613f46565b60606040518083038185885af1158015613529573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f7b9190614069565b60008181526001830160205260408120548015613631576000613572600183613c0b565b855490915060009061358690600190613c0b565b9050600086600001828154811061359f5761359f613f9e565b90600052602060002001549050808760000184815481106135c2576135c2613f9e565b6000918252602080832090910192909255828152600189019091526040902084905586548790806135f5576135f5614097565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610ec6565b6000915050610ec6565b815460009082106136995760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610d53565b8260000182815481106136ae576136ae613f9e565b9060005260206000200154905092915050565b6001600160a01b0382166000908152600160205260408120546136e5908390613c0b565b90506136f0836114ff565b15613715576001600160a01b0390921660009081526001602052604090209190915550565b600061372084612631565b6001600160a01b0385166000908152600160205260409020839055601c5490915061374c908390613c22565b6001600160a01b038516600090815260216020908152604080832093909355602290529081208054839290612a88908490613d8a565b6001600160a01b0382166000908152600160205260408120546137a6908390613d8a565b90506137b1836114ff565b156137d6576001600160a01b0390921660009081526001602052604090209190915550565b60006137e184612631565b905081601c546137f19190613c22565b6001600160a01b038516600090815260216020908152604080832093909355602290529081208054839290613827908490613d8a565b9091555050506001600160a01b0390921660009081526001602052604090209190915550565b60006127108260ff168460ff16866138659190613c22565b61386f9190613c22565b6138799190613c41565b949350505050565b60006020828403121561389357600080fd5b5035919050565b600060208083528351808285015260005b818110156138c7578581018301518582016040015282016138ab565b818111156138d9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461139c57600080fd5b6000806040838503121561391757600080fd5b8235613922816138ef565b946020939093013593505050565b801515811461139c57600080fd5b60006020828403121561395057600080fd5b813561219a81613930565b60008060006060848603121561397057600080fd5b833561397b816138ef565b9250602084013561398b816138ef565b929592945050506040919091013590565b6000602082840312156139ae57600080fd5b813561219a816138ef565b803560ff811681146139ca57600080fd5b919050565b60008060008060008060c087890312156139e857600080fd5b6139f1876139b9565b95506139ff602088016139b9565b9450613a0d604088016139b9565b9350613a1b606088016139b9565b9250613a29608088016139b9565b9150613a3760a088016139b9565b90509295509295509295565b600060208284031215613a5557600080fd5b61219a826139b9565b60008060408385031215613a7157600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613aa757600080fd5b813567ffffffffffffffff80821115613ac257613ac2613a80565b604051601f8301601f19908116603f01168101908282118183101715613aea57613aea613a80565b81604052838152866020858801011115613b0357600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215613b3657600080fd5b823567ffffffffffffffff80821115613b4e57600080fd5b613b5a86838701613a96565b93506020850135915080821115613b7057600080fd5b50613b7d85828601613a96565b9150509250929050565b60008060408385031215613b9a57600080fd5b8235613ba5816138ef565b91506020830135613bb5816138ef565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015613c1d57613c1d613bf5565b500390565b6000816000190483118215151615613c3c57613c3c613bf5565b500290565b600082613c5e57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680613c7757607f821691505b602082108103611d6257634e487b7160e01b600052602260045260246000fd5b600181815b80851115613cd2578160001904821115613cb857613cb8613bf5565b80851615613cc557918102915b93841c9390800290613c9c565b509250929050565b600082613ce957506001610ec6565b81613cf657506000610ec6565b8160018114613d0c5760028114613d1657613d32565b6001915050610ec6565b60ff841115613d2757613d27613bf5565b50506001821b610ec6565b5060208310610133831016604e8410600b8410161715613d55575081810a610ec6565b613d5f8383613c97565b8060001904821115613d7357613d73613bf5565b029392505050565b600061219a60ff841683613cda565b60008219821115613d9d57613d9d613bf5565b500190565b600060ff821660ff84168060ff03821115613dbf57613dbf613bf5565b019392505050565b60208082526010908201526f139bdd081e595d081d5b9b1bd8dad95960821b604082015260600190565b600060208284031215613e0357600080fd5b5051919050565b600060208284031215613e1c57600080fd5b815161219a81613930565b601f82111561171857600081815260208120601f850160051c81016020861015613e4e5750805b601f850160051c820191505b8181101561349757828155600101613e5a565b815167ffffffffffffffff811115613e8757613e87613a80565b613e9b81613e958454613c63565b84613e27565b602080601f831160018114613ed05760008415613eb85750858301515b600019600386901b1c1916600185901b178555613497565b600085815260208120601f198616915b82811015613eff57888601518255948401946001909101908401613ee0565b5085821015613f1d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201613f3f57613f3f613bf5565b5060010190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600060208284031215613f9357600080fd5b815161219a816138ef565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015613fed5781516001600160a01b031687529582019590820190600101613fc8565b509495945050505050565b8481526080602082015260006140116080830186613fb4565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a06040820152600061404c60a0830186613fb4565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561407e57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603160045260246000fdfea264697066735822122022badab2831e4d438794881c2981cb222ee6783abd1a502735c73de0d9b3255064736f6c634300080f0033
0x60c060405260076080908152665a65726f496e7560c81b60a052600f9062000028908262000625565b50604080518082019091526005815264245a494e5560d81b602082015260109062000054908262000625565b5060146012819055600060135580546001600160a01b031990811673bd42fe678e65ac914d9bc380ab8e492107c17b5b179091556015805490911673d02d752e31ed204cf43624ce8e84acfdfbe9c928179055620000b56009600a62000804565b620000c490620f424062000815565b60168190556017819055601855620000df6009600a62000804565b620000ed90619c4062000815565b601955601f805460ff19166064179055602380546001600160a01b03191673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48179055620001316009600a62000804565b6200013f90610fa062000815565b6026553480156200014f57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601654336000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200023d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000263919062000837565b6001600160a01b031663c9c6539630601b60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ec919062000837565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200033a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000360919062000837565b601a80546001600160a01b0392909216660100000000000002600160301b600160d01b031990921691909117905560186200039e6009600a62000804565b620003ad90620f424062000815565b620003b9919062000869565b6017556018620003cc6009600a62000804565b620003db90620f424062000815565b620003e7919062000869565b60185560006028819055602a55601a805465ffffffffffff191665460a0a07070717905560145462000431906005906001600160a01b03166200050e602090811b6200218517901c565b5060155462000458906005906001600160a01b03166200050e602090811b6200218517901c565b50620004743360056200050e60201b620021851790919060201c565b50601b546200049b90600b906001600160a01b03166200050e602090811b6200218517901c565b50620004cc601a60069054906101000a90046001600160a01b0316600b6200050e60201b620021851790919060201c565b50620004e830600b6200050e60201b620021851790919060201c565b506200050661dead600b6200050e60201b620021851790919060201c565b50506200088c565b600062000525836001600160a01b0384166200052e565b90505b92915050565b6000818152600183016020526040812054620005775750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000528565b50600062000528565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005ab57607f821691505b602082108103620005cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200062057600081815260208120601f850160051c81016020861015620005fb5750805b601f850160051c820191505b818110156200061c5782815560010162000607565b5050505b505050565b81516001600160401b0381111562000641576200064162000580565b620006598162000652845462000596565b84620005d2565b602080601f831160018114620006915760008415620006785750858301515b600019600386901b1c1916600185901b1785556200061c565b600085815260208120601f198616915b82811015620006c257888601518255948401946001909101908401620006a1565b5085821015620006e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007485781600019048211156200072c576200072c620006f1565b808516156200073a57918102915b93841c93908002906200070c565b509250929050565b600082620007615750600162000528565b81620007705750600062000528565b81600181146200078957600281146200079457620007b4565b600191505062000528565b60ff841115620007a857620007a8620006f1565b50506001821b62000528565b5060208310610133831016604e8410600b8410161715620007d9575081810a62000528565b620007e5838362000707565b8060001904821115620007fc57620007fc620006f1565b029392505050565b60006200052560ff84168362000750565b6000816000190483118215151615620008325762000832620006f1565b500290565b6000602082840312156200084a57600080fd5b81516001600160a01b03811681146200086257600080fd5b9392505050565b6000826200088757634e487b7160e01b600052601260045260246000fd5b500490565b6140e3806200089c6000396000f3fe6080604052600436106104265760003560e01c806373ddf08e11610227578063c28089541161012d578063e2fd002a116100b0578063f2c816ae11610077578063f2c816ae14610c8f578063f2fde38b14610caf578063f88b0e4614610ccf578063fe002ec214610ce5578063fe575a8714610cfa57005b8063e2fd002a14610c04578063e69e03ee14610c24578063ebddcc1d14610c39578063f00df36514610c59578063f0cc761214610c6f57005b8063d11edf74116100f4578063d11edf7414610b49578063d28d885214610b69578063d51f383b14610b7e578063db886f2314610b9e578063dd62ed3e14610bbe57005b8063c280895414610aca578063c3a3c03214610adf578063c3f4f54f14610af4578063cd979a7e14610b09578063d0291d6614610b2957005b806395d89b41116101b5578063a9059cbb1161017c578063a9059cbb14610a35578063b09f126614610a55578063b58a56cd14610a6a578063b766a38614610a8a578063c054f2f414610aaa57005b806395d89b41146109ab578063998a8668146109c05780639bf65770146109d55780639fa62d5f146109f5578063a457c2d714610a1557005b80638650e92a116101f95780638650e92a1461094357806386d0ada814610959578063887c60fb14610973578063893d20e81461098d5780638da5cb5b1461098d57005b806373ddf08e146108c057806375a1017c146108e0578063762bb282146109185780637b9e987a1461092e57005b80633ab0e29d1161032c57806358e55365116102ba5780636ea4caab116102815780636ea4caab1461080b5780636f89e4091461082b57806370a0823114610855578063715018a61461088b5780637335307b146108a057005b806358e55365146107ab5780635b80f625146107c15780635c69f690146106695780635ebbc3ca146107d6578063643daaea146107eb57005b806344f3c83a116102fe57806344f3c83a146107205780634ada218b146107365780634cdaf0ae146107555780634f91e48c1461077557806357ad67d11461078b57005b80633ab0e29d146106be5780633cc39b7a146106de5780633da56f18146106f45780634089b1701461070a57005b8063243b529a116103b4578063313ce5671161037b578063313ce5671461063557806332ac487f146106495780633478154b1461066957806335e82f3a1461067e578063395093511461069e57005b8063243b529a14610572578063269a6aae146105875780632973ef2d1461059d5780633054f8a314610606578063311a86971461062057005b80630fd99e16116103f85780630fd99e16146104d657806314e91377146104fe57806318160ddd1461051e5780631eb25d131461053d57806323b872dd1461055257005b80630241047b1461042f57806306fdde031461044f57806309218ee71461047a578063095ea7b3146104a657005b3661042d57005b005b34801561043b57600080fd5b5061042d61044a366004613881565b610d1a565b34801561045b57600080fd5b50610464610e23565b604051610471919061389a565b60405180910390f35b34801561048657600080fd5b50601f546104949060ff1681565b60405160ff9091168152602001610471565b3480156104b257600080fd5b506104c66104c1366004613904565b610eb5565b6040519015158152602001610471565b3480156104e257600080fd5b506104eb601881565b60405161ffff9091168152602001610471565b34801561050a57600080fd5b5061042d61051936600461393e565b610ecc565b34801561052a57600080fd5b506016545b604051908152602001610471565b34801561054957600080fd5b5061052f610f18565b34801561055e57600080fd5b506104c661056d36600461395b565b610f34565b34801561057e57600080fd5b5061042d610fcb565b34801561059357600080fd5b5061052f60125481565b3480156105a957600080fd5b50601a546040805160ff6301000000840481168252640100000000840481166020830152600160281b84048116928201929092528183166060820152610100830482166080820152620100009092041660a082015260c001610471565b34801561061257600080fd5b506029546104c69060ff1681565b34801561062c57600080fd5b50610494601881565b34801561064157600080fd5b506009610494565b34801561065557600080fd5b5061052f61066436600461399c565b61100e565b34801561067557600080fd5b506104eb600081565b34801561068a57600080fd5b5061042d61069936600461399c565b611066565b3480156106aa57600080fd5b506104c66106b9366004613904565b6110aa565b3480156106ca57600080fd5b5061042d6106d936600461399c565b6110e1565b3480156106ea57600080fd5b5061052f60245481565b34801561070057600080fd5b5061052f60135481565b34801561071657600080fd5b5061052f601e5481565b34801561072c57600080fd5b5061052f602a5481565b34801561074257600080fd5b50602b546104c690610100900460ff1681565b34801561076157600080fd5b5061042d61077036600461399c565b61113c565b34801561078157600080fd5b5061052f60185481565b34801561079757600080fd5b5061042d6107a63660046139cf565b61119f565b3480156107b757600080fd5b5061052f60205481565b3480156107cd57600080fd5b5060265461052f565b3480156107e257600080fd5b5061042d6112d2565b3480156107f757600080fd5b5061042d610806366004613881565b61139f565b34801561081757600080fd5b5061042d610826366004613881565b6113ea565b34801561083757600080fd5b5061084061143f565b60408051928352602083019190915201610471565b34801561086157600080fd5b5061052f61087036600461399c565b6001600160a01b031660009081526001602052604090205490565b34801561089757600080fd5b5061042d61147c565b3480156108ac57600080fd5b506104c66108bb36600461399c565b6114ff565b3480156108cc57600080fd5b5061042d6108db366004613a43565b61150c565b3480156108ec57600080fd5b50601454610900906001600160a01b031681565b6040516001600160a01b039091168152602001610471565b34801561092457600080fd5b5061052f60175481565b34801561093a57600080fd5b5061042d61156c565b34801561094f57600080fd5b5061052f601c5481565b34801561096557600080fd5b50602b546104c69060ff1681565b34801561097f57600080fd5b506027546104c69060ff1681565b34801561099957600080fd5b506000546001600160a01b0316610900565b3480156109b757600080fd5b506104646115bf565b3480156109cc57600080fd5b5061042d6115ce565b3480156109e157600080fd5b5061042d6109f036600461393e565b61171d565b348015610a0157600080fd5b5061042d610a10366004613a5e565b611769565b348015610a2157600080fd5b506104c6610a30366004613904565b6118eb565b348015610a4157600080fd5b506104c6610a50366004613904565b611967565b348015610a6157600080fd5b50610464611974565b348015610a7657600080fd5b5061042d610a8536600461399c565b611a02565b348015610a9657600080fd5b5061042d610aa536600461393e565b611a5d565b348015610ab657600080fd5b50602354610900906001600160a01b031681565b348015610ad657600080fd5b5061042d611aa9565b348015610aeb57600080fd5b5061052f611ab2565b348015610b0057600080fd5b5061052f611ad2565b348015610b1557600080fd5b5061042d610b2436600461399c565b611b10565b348015610b3557600080fd5b5061042d610b44366004613b23565b611b54565b348015610b5557600080fd5b5061042d610b64366004613881565b611ba6565b348015610b7557600080fd5b50610464611be4565b348015610b8a57600080fd5b5061042d610b99366004613881565b611bf1565b348015610baa57600080fd5b50601554610900906001600160a01b031681565b348015610bca57600080fd5b5061052f610bd9366004613b87565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610c1057600080fd5b5061042d610c1f366004613881565b611c7d565b348015610c3057600080fd5b5061052f611d02565b348015610c4557600080fd5b5061042d610c5436600461393e565b611d68565b348015610c6557600080fd5b5061052f601d5481565b348015610c7b57600080fd5b5061042d610c8a36600461399c565b611f82565b348015610c9b57600080fd5b5061042d610caa36600461399c565b611fdd565b348015610cbb57600080fd5b5061042d610cca36600461399c565b612021565b348015610cdb57600080fd5b5061052f60285481565b348015610cf157600080fd5b5061042d61211a565b348015610d0657600080fd5b506104c6610d1536600461399c565b612178565b33610d2d6000546001600160a01b031690565b6001600160a01b031614610d5c5760405162461bcd60e51b8152600401610d5390613bc0565b60405180910390fd5b602054811115610d6b57600080fd5b8060206000828254610d7d9190613c0b565b90915550506014546001600160a01b03166108fc6064610d9e846032613c22565b610da89190613c41565b6040518115909202916000818181858888f19350505050158015610dd0573d6000803e3d6000fd5b506015546001600160a01b03166108fc6064610ded846032613c22565b610df79190613c41565b6040518115909202916000818181858888f19350505050158015610e1f573d6000803e3d6000fd5b5050565b6060600f8054610e3290613c63565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5e90613c63565b8015610eab5780601f10610e8057610100808354040283529160200191610eab565b820191906000526020600020905b815481529060010190602001808311610e8e57829003601f168201915b5050505050905090565b6000610ec23384846121a1565b5060015b92915050565b33610edf6000546001600160a01b031690565b6001600160a01b031614610f055760405162461bcd60e51b8152600401610d5390613bc0565b6027805460ff1916911515919091179055565b610f246009600a613d7b565b610f3190620f4240613c22565b81565b6000610f41848484612294565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610fac5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610d53565b610fc08533610fbb8685613c0b565b6121a1565b506001949350505050565b33610fde6000546001600160a01b031690565b6001600160a01b0316146110045760405162461bcd60e51b8152600401610d5390613bc0565b61100c6124f1565b565b6000611019826114ff565b1561103a57506001600160a01b031660009081526022602052604090205490565b6001600160a01b03821660009081526022602052604090205461105c83612631565b610ec69190613d8a565b336110796000546001600160a01b031690565b6001600160a01b03161461109f5760405162461bcd60e51b8152600401610d5390613bc0565b610e1f600d826126b7565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610ec2918590610fbb908690613d8a565b336110f46000546001600160a01b031690565b6001600160a01b03161461111a5760405162461bcd60e51b8152600401610d5390613bc0565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b3361114f6000546001600160a01b031690565b6001600160a01b0316146111755760405162461bcd60e51b8152600401610d5390613bc0565b602b80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b336111b26000546001600160a01b031690565b6001600160a01b0316146111d85760405162461bcd60e51b8152600401610d5390613bc0565b6000846111e58789613da2565b6111ef9190613da2565b90508060ff166064146112535760405162461bcd60e51b815260206004820152602660248201527f6275726e2b6c69712b6d61726b6574696e67206e6565647320746f20657175616044820152656c203130302560d01b6064820152608401610d53565b50601a805460ff928316620100000262ff0000199484166101000261ffff19978516600160281b029790971665ff000000ffff199885166401000000000264ff00000000199a86166301000000029a909a1664ffff00000019909316929092179890981796909616959095179216919091179190911716919091179055565b336112e56000546001600160a01b031690565b6001600160a01b03161461130b5760405162461bcd60e51b8152600401610d5390613bc0565b602c5442101561132d5760405162461bcd60e51b8152600401610d5390613dc7565b61133961070842613d8a565b602c556014546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611389576040519150601f19603f3d011682016040523d82523d6000602084013e61138e565b606091505b505090508061139c57600080fd5b50565b336113b26000546001600160a01b031690565b6001600160a01b0316146113d85760405162461bcd60e51b8152600401610d5390613bc0565b61139c6113e54283613d8a565b6126cc565b336113fd6000546001600160a01b031690565b6001600160a01b0316146114235760405162461bcd60e51b8152600401610d5390613bc0565b61142f6009600a613d7b565b6114399082613c22565b60195550565b60008061144e6009600a613d7b565b60175461145b9190613c41565b6114676009600a613d7b565b6018546114749190613c41565b915091509091565b3361148f6000546001600160a01b031690565b6001600160a01b0316146114b55760405162461bcd60e51b8152600401610d5390613bc0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610ec6600b836126df565b3361151f6000546001600160a01b031690565b6001600160a01b0316146115455760405162461bcd60e51b8152600401610d5390613bc0565b60648160ff16111561155657600080fd5b601f805460ff191660ff92909216919091179055565b3361157f6000546001600160a01b031690565b6001600160a01b0316146115a55760405162461bcd60e51b8152600401610d5390613bc0565b602b805461ff00191661010017905542601155565b905090565b606060108054610e3290613c63565b336115e16000546001600160a01b031690565b6001600160a01b0316146116075760405162461bcd60e51b8152600401610d5390613bc0565b602c544210156116295760405162461bcd60e51b8152600401610d5390613dc7565b602b546040516370a0823160e01b8152306004820152620100009091046001600160a01b03169060009082906370a0823190602401602060405180830381865afa15801561167b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169f9190613df1565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af11580156116f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117189190613e0a565b505050565b336117306000546001600160a01b031690565b6001600160a01b0316146117565760405162461bcd60e51b8152600401610d5390613bc0565b602b805460ff1916911515919091179055565b3361177c6000546001600160a01b031690565b6001600160a01b0316146117a25760405162461bcd60e51b8152600401610d5390613bc0565b60646016546117b19190613c41565b81106117bc57600080fd5b6117c86009600a613d7b565b6117d29083613c22565b91506117e06009600a613d7b565b6117ea9082613c22565b90506000601860ff166016546118009190613c41565b90506000601861ffff166016546118179190613c41565b90508184101561187d5760405162461bcd60e51b815260206004820152602b60248201527f6e657742616c616e63654c696d6974206e6565647320746f206265206174206c60448201526a19585cdd081d185c99d95d60aa1b6064820152608401610d53565b808310156118de5760405162461bcd60e51b815260206004820152602860248201527f6e657753656c6c4c696d6974206e6565647320746f206265206174206c6561736044820152671d081d185c99d95d60c21b6064820152608401610d53565b5050601791909155601855565b3360009081526002602090815260408083206001600160a01b03861684529091528120548281101561194e5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610d53565b61195d3385610fbb8685613c0b565b5060019392505050565b6000610ec2338484612294565b6010805461198190613c63565b80601f01602080910402602001604051908101604052809291908181526020018280546119ad90613c63565b80156119fa5780601f106119cf576101008083540402835291602001916119fa565b820191906000526020600020905b8154815290600101906020018083116119dd57829003601f168201915b505050505081565b33611a156000546001600160a01b031690565b6001600160a01b031614611a3b5760405162461bcd60e51b8152600401610d5390613bc0565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b33611a706000546001600160a01b031690565b6001600160a01b031614611a965760405162461bcd60e51b8152600401610d5390613bc0565b6029805460ff1916911515919091179055565b61100c33612701565b6000602c54421015611acc5742602c546115ba9190613c0b565b50600090565b6000611ae06009600a613d7b565b601654611aef6009600a613d7b565b611afc90620f4240613c22565b611b069190613c0b565b6115ba9190613c41565b33611b236000546001600160a01b031690565b6001600160a01b031614611b495760405162461bcd60e51b8152600401610d5390613bc0565b610e1f600582612185565b33611b676000546001600160a01b031690565b6001600160a01b031614611b8d5760405162461bcd60e51b8152600401610d5390613bc0565b600f611b998382613e6d565b5060106117188282613e6d565b33611bb96000546001600160a01b031690565b6001600160a01b031614611bdf5760405162461bcd60e51b8152600401610d5390613bc0565b602655565b600f805461198190613c63565b33611c046000546001600160a01b031690565b6001600160a01b031614611c2a5760405162461bcd60e51b8152600401610d5390613bc0565b8015611c785760405162461bcd60e51b815260206004820152601760248201527f53656c6c204c6f636b2074696d6520746f6f20686967680000000000000000006044820152606401610d53565b602855565b33611c906000546001600160a01b031690565b6001600160a01b031614611cb65760405162461bcd60e51b8152600401610d5390613bc0565b8015611cfd5760405162461bcd60e51b8152602060048201526016602482015275084eaf24098dec6d640e8d2daca40e8dede40d0d2ced60531b6044820152606401610d53565b602a55565b601654600090815b611d14600b6129b2565b811015611d625760016000611d2a600b846129bc565b6001600160a01b03168152602081019190915260400160002054611d4e9083613c0b565b915080611d5a81613f2d565b915050611d0a565b50919050565b33611d7b6000546001600160a01b031690565b6001600160a01b031614611da15760405162461bcd60e51b8152600401610d5390613bc0565b602c54421015611dc35760405162461bcd60e51b8152600401610d5390613dc7565b611dcf61070842613d8a565b602c55602b546040516370a0823160e01b8152306004820152620100009091046001600160a01b03169060009082906370a0823190602401602060405180830381865afa158015611e24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e489190613df1565b601b5460405163095ea7b360e01b81526001600160a01b0391821660048201526024810183905291925083169063095ea7b3906044016020604051808303816000875af1158015611e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec19190613e0a565b50601b5460405163af2979eb60e01b815247916001600160a01b03169063af2979eb90611efd9030908690600090819084904290600401613f46565b6020604051808303816000875af1158015611f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f409190613df1565b506000611f4d8247613c0b565b90508415611f6357611f5e816129c8565b611f7b565b8060206000828254611f759190613d8a565b90915550505b5050505050565b33611f956000546001600160a01b031690565b6001600160a01b031614611fbb5760405162461bcd60e51b8152600401610d5390613bc0565b602380546001600160a01b0319166001600160a01b0392909216919091179055565b33611ff06000546001600160a01b031690565b6001600160a01b0316146120165760405162461bcd60e51b8152600401610d5390613bc0565b610e1f600d82612185565b336120346000546001600160a01b031690565b6001600160a01b03161461205a5760405162461bcd60e51b8152600401610d5390613bc0565b6001600160a01b0381166120bf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d53565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3361212d6000546001600160a01b031690565b6001600160a01b0316146121535760405162461bcd60e51b8152600401610d5390613bc0565b6020805460009091556014546001600160a01b03166108fc6064610d9e846032613c22565b6000610ec6600d836126df565b600061219a836001600160a01b038416612a94565b9392505050565b6001600160a01b0383166121eb5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610d53565b6001600160a01b0382166122335760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610d53565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166122df5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610d53565b6001600160a01b0382166123285760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610d53565b60006123356005856126df565b8061234657506123466005846126df565b905060006001600160a01b03851630148061236957506001600160a01b03841630145b601b54601a549192506001600160a01b0390811691600091888116600160301b909204161480156123ab5750816001600160a01b0316866001600160a01b0316145b806123e65750601a546001600160a01b03878116600160301b909204161480156123e65750816001600160a01b0316876001600160a01b0316145b601a549091506000906001600160a01b03898116600160301b9092041614806124205750826001600160a01b0316886001600160a01b0316145b601a549091506000906001600160a01b03898116600160301b90920416148061245a5750836001600160a01b0316886001600160a01b0316145b905084806124655750825b8061246d5750855b156124825761247d898989612ae3565b6124e6565b602b54610100900460ff166124d95760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610d53565b6124e68989898585612bae565b505050505050505050565b6025805460ff191660019081179091553060009081526020919091526040812054601a5490919061253790600160281b810460ff90811691640100000000900416613da2565b60ff1690506000602654905080831080612553575061ffff8216155b1561256057505050612625565b601a5460009061ffff84169061258190640100000000900460ff1684613c22565b61258b9190613c41565b905060006125998284613c0b565b905060006125a8600284613c41565b905060006125b68285613c0b565b905060006125c48483613d8a565b9050476125d082613346565b60006125dc8247613c0b565b90506000836125eb8684613c22565b6125f59190613c41565b9050612601868261349f565b600061260d8447613c0b565b9050612618816129c8565b5050505050505050505050505b6025805460ff19169055565b6001600160a01b038116600090815260016020526040812054601c54829161265891613c22565b6001600160a01b0384166000908152602160205260409020549091508110156126845750600092915050565b6001600160a01b038316600090815260216020526040902054600160401b906126ad9083613c0b565b61219a9190613c41565b600061219a836001600160a01b03841661354e565b602c5481116126da57600080fd5b602c55565b6001600160a01b0381166000908152600183016020526040812054151561219a565b601b54600160a01b900460ff161561271857600080fd5b601b805460ff60a01b1916600160a01b1790556000612736826114ff565b1561275e57506001600160a01b038116600090815260226020526040812080549190556127de565b600061276983612631565b6001600160a01b038416600090815260016020526040902054601c5491925061279191613c22565b6001600160a01b0384166000908152602160209081526040808320939093556022905220546127c1908290613d8a565b6001600160a01b0384166000908152602260205260408120559150505b806000036127f7575050601b805460ff60a01b19169055565b80601e60008282546128099190613d8a565b90915550506040805160028082526060820183526000926020830190803683375050601b54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289c9190613f81565b816000815181106128af576128af613f9e565b6001600160a01b0392831660209182029290920101526023548251911690829060019081106128e0576128e0613f9e565b6001600160a01b039283166020918202929092010152601b5460405163b6f9de9560e01b815291169063b6f9de9590849061292690600090869089904290600401613ff8565b6000604051808303818588803b15801561293f57600080fd5b505af1158015612953573d6000803e3d6000fd5b5050604080518681526001600160a01b03881660208201527f80a489adad6e8e00b344a3e9042e6aff0ae286ce1376918078a67bbce8b905b394500191506129989050565b60405180910390a15050601b805460ff60a01b1916905550565b6000610ec6825490565b600061219a838361363b565b601f546000906064906129de9060ff1684613c22565b6129e89190613c41565b905060006129f68284613c0b565b90508160206000828254612a0a9190613d8a565b909155505080156117185780601d6000828254612a279190613d8a565b9091555060009050612a37611d02565b905080600003612a5e578160206000828254612a539190613d8a565b90915550612a8e9050565b80612a6d600160401b84613c22565b612a779190613c41565b601c6000828254612a889190613d8a565b90915550505b50505050565b6000818152600183016020526040812054612adb57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610ec6565b506000610ec6565b6001600160a01b03831660009081526001602052604090205481811015612b475760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610d53565b612b5184836136c1565b612b5b8383613782565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ba091815260200190565b60405180910390a350505050565b6001600160a01b0380851660009081526001602052604080822054928816825290205484811015612c1c5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610d53565b60008315612dcf57612c2f6007896126df565b612cc4576001600160a01b03881660009081526003602052604090205442101580612c5c575060275460ff165b612c9d5760405162461bcd60e51b815260206004820152601260248201527153656c6c657220696e2073656c6c4c6f636b60701b6044820152606401610d53565b602854612caa9042613d8a565b6001600160a01b0389166000908152600360205260409020555b601854861115612d085760405162461bcd60e51b815260206004820152600f60248201526e223ab6b810383937ba32b1ba34b7b760891b6044820152606401610d53565b612d13600d896126df565b15612d575760405162461bcd60e51b81526020600482015260146024820152734164647265737320626c61636b6c69737465642160601b6044820152606401610d53565b601254601154612d679190613d8a565b4211158015612d7857506013546001145b15612dbe57612d88600d89612185565b506040516001600160a01b038916907f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135190600090a25b50601a54610100900460ff166131e3565b8415612fe057612de06009886126df565b612e73576001600160a01b03871660009081526004602052604090205442101580612e0d575060295460ff165b612e4c5760405162461bcd60e51b815260206004820152601060248201526f427579657220696e206275794c6f636b60801b6044820152606401610d53565b602a54612e599042613d8a565b6001600160a01b0388166000908152600460205260409020555b601754612e808785613d8a565b1115612ec15760405162461bcd60e51b815260206004820152601060248201526f3bb430b63290383937ba32b1ba34b7b760811b6044820152606401610d53565b601954861115612f1e5760405162461bcd60e51b815260206004820152602260248201527f547820616d6f756e7420657863656564696e67206d61782062757920616d6f756044820152611b9d60f21b6064820152608401610d53565b612f29600d886126df565b15612f6d5760405162461bcd60e51b81526020600482015260146024820152734164647265737320626c61636b6c69737465642160601b6044820152606401610d53565b601254601154612f7d9190613d8a565b4211158015612f8e57506013546001145b15612fd457612f9e600d88612185565b506040516001600160a01b038816907f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135190600090a25b50601a5460ff166131e3565b612fec6009600a613d7b565b8611612ffb57612ffb88612701565b6017546130088785613d8a565b11156130495760405162461bcd60e51b815260206004820152601060248201526f3bb430b63290383937ba32b1ba34b7b760811b6044820152606401610d53565b6130546007896126df565b6130be576001600160a01b03881660009081526003602052604090205442101580613081575060275460ff165b6130be5760405162461bcd60e51b815260206004820152600e60248201526d53656e64657220696e204c6f636b60901b6044820152606401610d53565b6130c9600d896126df565b156131165760405162461bcd60e51b815260206004820152601b60248201527f53656e646572206164647265737320626c61636b6c69737465642100000000006044820152606401610d53565b613121600d886126df565b1561316e5760405162461bcd60e51b815260206004820152601e60248201527f526563697069656e74206164647265737320626c61636b6c69737465642100006044820152606401610d53565b60125460115461317e9190613d8a565b421115801561318f57506013546001145b156131d55761319f600d89612185565b506040516001600160a01b038916907f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135190600090a25b50601a5462010000900460ff165b601a546001600160a01b03898116600160301b909204161480159061320b5750602b5460ff16155b801561321a575060255460ff16155b80156132235750835b15613230576132306124f1565b600061324c8783601a60039054906101000a900460ff1661384d565b601a54909150600090613280908990859061327b9060ff6401000000008204811691600160281b900416613da2565b61384d565b9050600061328e8284613d8a565b613298908a613c0b565b90506132a48b8a6136c1565b30600090815260016020526040812080548492906132c3908490613d8a565b9250508190555082601660008282546132dc9190613c0b565b909155506132ec90508a82613782565b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161333191815260200190565b60405180910390a35050505050505050505050565b601b5461335e9030906001600160a01b0316836121a1565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061339357613393613f9e565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156133ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134109190613f81565b8160018151811061342357613423613f9e565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b815291169063791ac9479061346990859060009086903090429060040161402d565b600060405180830381600087803b15801561348357600080fd5b505af1158015613497573d6000803e3d6000fd5b505050505050565b80602460008282546134b19190613d8a565b9091555050601b546134ce9030906001600160a01b0316846121a1565b601b5460405163f305d71960e01b81526001600160a01b039091169063f305d71990839061350b9030908790600090819084904290600401613f46565b60606040518083038185885af1158015613529573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f7b9190614069565b60008181526001830160205260408120548015613631576000613572600183613c0b565b855490915060009061358690600190613c0b565b9050600086600001828154811061359f5761359f613f9e565b90600052602060002001549050808760000184815481106135c2576135c2613f9e565b6000918252602080832090910192909255828152600189019091526040902084905586548790806135f5576135f5614097565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610ec6565b6000915050610ec6565b815460009082106136995760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610d53565b8260000182815481106136ae576136ae613f9e565b9060005260206000200154905092915050565b6001600160a01b0382166000908152600160205260408120546136e5908390613c0b565b90506136f0836114ff565b15613715576001600160a01b0390921660009081526001602052604090209190915550565b600061372084612631565b6001600160a01b0385166000908152600160205260409020839055601c5490915061374c908390613c22565b6001600160a01b038516600090815260216020908152604080832093909355602290529081208054839290612a88908490613d8a565b6001600160a01b0382166000908152600160205260408120546137a6908390613d8a565b90506137b1836114ff565b156137d6576001600160a01b0390921660009081526001602052604090209190915550565b60006137e184612631565b905081601c546137f19190613c22565b6001600160a01b038516600090815260216020908152604080832093909355602290529081208054839290613827908490613d8a565b9091555050506001600160a01b0390921660009081526001602052604090209190915550565b60006127108260ff168460ff16866138659190613c22565b61386f9190613c22565b6138799190613c41565b949350505050565b60006020828403121561389357600080fd5b5035919050565b600060208083528351808285015260005b818110156138c7578581018301518582016040015282016138ab565b818111156138d9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461139c57600080fd5b6000806040838503121561391757600080fd5b8235613922816138ef565b946020939093013593505050565b801515811461139c57600080fd5b60006020828403121561395057600080fd5b813561219a81613930565b60008060006060848603121561397057600080fd5b833561397b816138ef565b9250602084013561398b816138ef565b929592945050506040919091013590565b6000602082840312156139ae57600080fd5b813561219a816138ef565b803560ff811681146139ca57600080fd5b919050565b60008060008060008060c087890312156139e857600080fd5b6139f1876139b9565b95506139ff602088016139b9565b9450613a0d604088016139b9565b9350613a1b606088016139b9565b9250613a29608088016139b9565b9150613a3760a088016139b9565b90509295509295509295565b600060208284031215613a5557600080fd5b61219a826139b9565b60008060408385031215613a7157600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613aa757600080fd5b813567ffffffffffffffff80821115613ac257613ac2613a80565b604051601f8301601f19908116603f01168101908282118183101715613aea57613aea613a80565b81604052838152866020858801011115613b0357600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215613b3657600080fd5b823567ffffffffffffffff80821115613b4e57600080fd5b613b5a86838701613a96565b93506020850135915080821115613b7057600080fd5b50613b7d85828601613a96565b9150509250929050565b60008060408385031215613b9a57600080fd5b8235613ba5816138ef565b91506020830135613bb5816138ef565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015613c1d57613c1d613bf5565b500390565b6000816000190483118215151615613c3c57613c3c613bf5565b500290565b600082613c5e57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680613c7757607f821691505b602082108103611d6257634e487b7160e01b600052602260045260246000fd5b600181815b80851115613cd2578160001904821115613cb857613cb8613bf5565b80851615613cc557918102915b93841c9390800290613c9c565b509250929050565b600082613ce957506001610ec6565b81613cf657506000610ec6565b8160018114613d0c5760028114613d1657613d32565b6001915050610ec6565b60ff841115613d2757613d27613bf5565b50506001821b610ec6565b5060208310610133831016604e8410600b8410161715613d55575081810a610ec6565b613d5f8383613c97565b8060001904821115613d7357613d73613bf5565b029392505050565b600061219a60ff841683613cda565b60008219821115613d9d57613d9d613bf5565b500190565b600060ff821660ff84168060ff03821115613dbf57613dbf613bf5565b019392505050565b60208082526010908201526f139bdd081e595d081d5b9b1bd8dad95960821b604082015260600190565b600060208284031215613e0357600080fd5b5051919050565b600060208284031215613e1c57600080fd5b815161219a81613930565b601f82111561171857600081815260208120601f850160051c81016020861015613e4e5750805b601f850160051c820191505b8181101561349757828155600101613e5a565b815167ffffffffffffffff811115613e8757613e87613a80565b613e9b81613e958454613c63565b84613e27565b602080601f831160018114613ed05760008415613eb85750858301515b600019600386901b1c1916600185901b178555613497565b600085815260208120601f198616915b82811015613eff57888601518255948401946001909101908401613ee0565b5085821015613f1d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201613f3f57613f3f613bf5565b5060010190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600060208284031215613f9357600080fd5b815161219a816138ef565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015613fed5781516001600160a01b031687529582019590820190600101613fc8565b509495945050505050565b8481526080602082015260006140116080830186613fb4565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a06040820152600061404c60a0830186613fb4565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561407e57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603160045260246000fdfea264697066735822122022badab2831e4d438794881c2981cb222ee6783abd1a502735c73de0d9b3255064736f6c634300080f0033