0x60806040526004361061034e5760003560e01c806370a08231116101bb578063bcd96a25116100f7578063dd62ed3e11610095578063f6540ec71161006f578063f6540ec714610a97578063fb78680d14610aad578063fdb78c0e14610acd578063fe575a8714610b0057600080fd5b8063dd62ed3e14610a1c578063eafb5a3c14610a62578063ee5d9c2d14610a8257600080fd5b8063c6a276c2116100d1578063c6a276c21461098b578063cab5ebea146109ab578063cf847706146109cb578063d3f6a157146109fc57600080fd5b8063bcd96a2514610909578063c2fa418f14610929578063c6831cd81461095a57600080fd5b80638965b55d116101645780638da5cb5b1161013e5780638da5cb5b1461081b57806395d89b4114610883578063a457c2d7146108c9578063a9059cbb146108e957600080fd5b80638965b55d146108395780638a63bd9b146108595780638a8c523c1461086e57600080fd5b806380c581d11161019557806380c581d1146107c257806388f82020146107e2578063893d20e81461081b57600080fd5b806370a0823114610737578063715018a6146107575780637b45d4311461076c57600080fd5b806333251a0b1161028a5780634fbee1931161023357806355dbc3691161020d57806355dbc369146106cc578063590ffdce146106e15780635c24b07414610701578063640384091461072157600080fd5b80634fbee1931461065457806350a8e0161461068d57806355d8ece6146106ac57600080fd5b8063452ed4f111610264578063452ed4f1146105fa5780634ada218b1461061a5780634fb2e45d1461063457600080fd5b806333251a0b1461059a57806339509351146105ba5780633f3cf56c146105da57600080fd5b80631b6afa2d116102f757806326003957116102d1578063260039571461051857806329dd8798146105385780632d83811914610558578063313ce5671461057857600080fd5b80631b6afa2d1461046d5780631e90afe3146104d857806323b872dd146104f857600080fd5b8063095ea7b311610328578063095ea7b3146103fc57806313e461921461042c57806318160ddd1461044e57600080fd5b806303fd2a451461035a57806306fdde031461038d5780630758d924146103dc57600080fd5b3661035557005b600080fd5b34801561036657600080fd5b5061037061dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561039957600080fd5b5060408051808201909152600981527f474f4c204420494e55000000000000000000000000000000000000000000000060208201525b6040516103849190613f69565b3480156103e857600080fd5b50601554610370906001600160a01b031681565b34801561040857600080fd5b5061041c610417366004613ff1565b610b20565b6040519015158152602001610384565b34801561043857600080fd5b5061044c61044736600461402b565b610b36565b005b34801561045a57600080fd5b506012545b604051908152602001610384565b34801561047957600080fd5b506010546104aa9061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610384565b3480156104e457600080fd5b5061044c6104f336600461407b565b610ef6565b34801561050457600080fd5b5061041c6105133660046140be565b61102c565b34801561052457600080fd5b5061044c6105333660046140ff565b6110a4565b34801561054457600080fd5b5061044c610553366004614121565b6111bb565b34801561056457600080fd5b5061045f61057336600461417d565b6112a4565b34801561058457600080fd5b5060115460405160ff9091168152602001610384565b3480156105a657600080fd5b5061044c6105b5366004614196565b61133b565b3480156105c657600080fd5b5061041c6105d5366004613ff1565b61140c565b3480156105e657600080fd5b5061044c6105f53660046140ff565b611448565b34801561060657600080fd5b50601654610370906001600160a01b031681565b34801561062657600080fd5b5060235461041c9060ff1681565b34801561064057600080fd5b5061044c61064f366004614196565b61155f565b34801561066057600080fd5b5061041c61066f366004614196565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561069957600080fd5b5060235461041c90610100900460ff1681565b3480156106b857600080fd5b5061044c6106c736600461407b565b6117a5565b3480156106d857600080fd5b5061045f6118db565b3480156106ed57600080fd5b5061044c6106fc36600461402b565b611968565b34801561070d57600080fd5b5061044c61071c366004614196565b6119e1565b34801561072d57600080fd5b5061045f601c5481565b34801561074357600080fd5b5061045f610752366004614196565b611b20565b34801561076357600080fd5b5061044c611b85565b34801561077857600080fd5b50600c5461079d9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610384565b3480156107ce57600080fd5b5061044c6107dd36600461402b565b611c35565b3480156107ee57600080fd5b5061041c6107fd366004614196565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561082757600080fd5b506000546001600160a01b0316610370565b34801561084557600080fd5b5061044c61085436600461407b565b611e22565b34801561086557600080fd5b5061041c611f58565b34801561087a57600080fd5b5061044c611fc7565b34801561088f57600080fd5b5060408051808201909152600481527f47494e550000000000000000000000000000000000000000000000000000000060208201526103cf565b3480156108d557600080fd5b5061041c6108e4366004613ff1565b612186565b3480156108f557600080fd5b5061041c610904366004613ff1565b6121bd565b34801561091557600080fd5b5061044c6109243660046141b3565b6121d4565b34801561093557600080fd5b50600e5461079d9061ffff808216916201000081048216916401000000009091041683565b34801561096657600080fd5b50600d5461079d9061ffff808216916201000081048216916401000000009091041683565b34801561099757600080fd5b5061044c6109a6366004614196565b6122d0565b3480156109b757600080fd5b5061044c6109c63660046141e6565b612370565b3480156109d757600080fd5b50600f5461079d9061ffff808216916201000081048216916401000000009091041683565b348015610a0857600080fd5b5061044c610a17366004614203565b612443565b348015610a2857600080fd5b5061045f610a37366004614203565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610a6e57600080fd5b5061044c610a7d366004614196565b6124cc565b348015610a8e57600080fd5b5061044c6128d5565b348015610aa357600080fd5b5061045f60205481565b348015610ab957600080fd5b5061044c610ac8366004614231565b6129b8565b348015610ad957600080fd5b5060185461041c907501000000000000000000000000000000000000000000900460ff1681565b348015610b0c57600080fd5b5061041c610b1b366004614196565b612a45565b6000610b2d338484612ae2565b50600192915050565b6000546001600160a01b03163314610b895760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b60018115151415610ccb576001600160a01b03821660009081526007602052604090205460ff1615610bfd5760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c7265616479206578636c756465642e000000006044820152606401610b80565b6001600160a01b03821660009081526001602052604090205415610c57576001600160a01b038216600090815260016020526040902054610c3d906112a4565b6001600160a01b0383166000908152600260205260409020555b506001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b80610ef2576001600160a01b03821660009081526007602052604090205460ff16610d385760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c726561647920696e636c756465642e000000006044820152606401610b80565b60085460011415610db4576001600160a01b038216600090815260026020908152604080832083905560079091529020805460ff191690556008805480610d8157610d81614263565b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff191690550190555050565b60005b600854811015610ef057826001600160a01b031660088281548110610dde57610dde614292565b6000918252602090912001546001600160a01b03161415610ede5760088054610e09906001906142f0565b81548110610e1957610e19614292565b600091825260209091200154600880546001600160a01b039092169183908110610e4557610e45614292565b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039485161790559185168152600282526040808220829055600790925220805460ff191690556008805480610eaa57610eaa614263565b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff19169055019055610ef0565b80610ee881614307565b915050610db7565b505b5050565b6000546001600160a01b03163314610f445760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60105461ffff90811690841611801590610f6e575060105461ffff62010000909104811690831611155b8015610f8c575060105461ffff640100000000909104811690821611155b610f9557600080fd5b610d7a81610fa38585614322565b610fad9190614322565b61ffff161115610fbc57600080fd5b600e805461ffff928316640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff00009484166201000002949094167fffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000909116179390911692909217179055565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914611091576001600160a01b03841660009081526005602090815260408083203384529091528120805484929061108b9084906142f0565b90915550505b61109c848484612bef565b949350505050565b6000546001600160a01b031633146110f25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b600081836012546111039190614348565b61110d9190614367565b90506103e860125461111f9190614367565b8110156111945760405162461bcd60e51b815260206004820152603260248201527f4d61782057616c6c657420616d74206d7573742062652061626f766520302e3160448201527f25206f6620746f74616c20737570706c792e00000000000000000000000000006064820152608401610b80565b601f819055600a5482906111a9908590614348565b6111b39190614367565b602055505050565b6000546001600160a01b031633146112095760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b6023546040517f0109da690000000000000000000000000000000000000000000000000000000081528515156004820152841515602482015283151560448201528215156064820152620100009091046001600160a01b031690630109da6990608401600060405180830381600087803b15801561128657600080fd5b505af115801561129a573d6000803e3d6000fd5b5050505050505050565b600060135482111561131e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610b80565b600061132861304d565b90506113348184614367565b9392505050565b6000546001600160a01b031633146113895760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b6023546040517f33251a0b0000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015262010000909204909116906333251a0b906024015b600060405180830381600087803b1580156113f157600080fd5b505af1158015611405573d6000803e3d6000fd5b5050505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610b2d9185906114439086906143a2565b612ae2565b6000546001600160a01b031633146114965760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b600081836012546114a79190614348565b6114b19190614367565b90506103e86012546114c39190614367565b8110156115385760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3125206f6620746f74616c20737570706c792e0000000000000000006064820152608401610b80565b601b819055600a54829061154d908590614348565b6115579190614367565b601c55505050565b6000546001600160a01b031633146115ad5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b6001600160a01b0381166116295760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b80565b6001600160a01b03811661dead14156116aa5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b80565b600080546116c3916001600160a01b0390911690611968565b6116ce816001611968565b6000546017546001600160a01b0390811691161415611710576017805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555b60008054611726906001600160a01b0316611b20565b111561174d5760005461174b906001600160a01b03168261174682611b20565b612bef565b505b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b031633146117f35760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60105461ffff9081169084161180159061181d575060105461ffff62010000909104811690831611155b801561183b575060105461ffff640100000000909104811690821611155b61184457600080fd5b610d7a816118528585614322565b61185c9190614322565b61ffff16111561186b57600080fd5b600c805461ffff928316640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff00009484166201000002949094167fffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000909116179390911692909217179055565b6000602360029054906101000a90046001600160a01b03166001600160a01b03166355dbc3696040518163ffffffff1660e01b815260040160206040518083038186803b15801561192b57600080fd5b505afa15801561193f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196391906143ba565b905090565b6000546001600160a01b031633146119b65760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611a2f5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b602354610100900460ff1615611a875760405162461bcd60e51b815260206004820152601860248201527f4c697175696469747920697320616c726561647920696e2e00000000000000006044820152606401610b80565b6001600160a01b038116301415611ae05760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b80565b602380546001600160a01b0390921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b6001600160a01b03811660009081526007602052604081205460ff1615611b5d57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054611b7f906112a4565b92915050565b6000546001600160a01b03163314611bd35760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60008054611bec916001600160a01b0390911690611968565b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314611c835760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b80611d2b576001600160a01b03828116600081815260036020526040808220805460ff1916905560235490517f80c581d100000000000000000000000000000000000000000000000000000000815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050505050565b60045415611d92576203f48060045442611d4591906142f0565b11611d925760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f74207365742061206e657720706169722074686973207765656b216044820152606401610b80565b6001600160a01b0382811660008181526003602052604090819020805460ff1916600190811790915542600490815560235492517f80c581d1000000000000000000000000000000000000000000000000000000008152908101939093526024830152620100009004909116906380c581d190604401600060405180830381600087803b158015611d0f57600080fd5b6000546001600160a01b03163314611e705760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60105461ffff90811690841611801590611e9a575060105461ffff62010000909104811690831611155b8015611eb8575060105461ffff640100000000909104811690821611155b611ec157600080fd5b610d7a81611ecf8585614322565b611ed99190614322565b61ffff161115611ee857600080fd5b600d805461ffff928316640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff00009484166201000002949094167fffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000909116179390911692909217179055565b600080546001600160a01b03163314611fa75760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b601554611fc19030906001600160a01b0316600019612ae2565b50600190565b6000546001600160a01b031633146120155760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60235460ff16156120685760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b80565b602354610100900460ff166120bf5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b80565b6120ca306001610b36565b6016546120e1906001600160a01b03166001610b36565b6023546016546040517f4b38f1d40000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff42166044820152620100009092041690634b38f1d490606401600060405180830381600087803b15801561216557600080fd5b505af1925050508015612176575060015b506023805460ff19166001179055565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610b2d9185906114439086906142f0565b60006121ca338484612bef565b5060019392505050565b6000546001600160a01b031633146122225760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b606361222e8284614322565b61ffff1610156122805760405162461bcd60e51b815260206004820152601b60248201527f4d7573742061646420757020746f2031303025206f72203939252e00000000006044820152606401610b80565b600f805461ffff838116620100000263ffffffff19909216908516171790556122a98183614322565b600f805461ffff929092166401000000000265ffff00000000199092169190911790555050565b6000546001600160a01b0316331461231e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b6023546040517fc6a276c20000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152620100009092049091169063c6a276c2906024016113d7565b6000546001600160a01b031633146123be5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b601880548215157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579061243890831515815260200190565b60405180910390a150565b6000546001600160a01b031633146124915760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b601780546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560188054929093169116179055565b6000546001600160a01b0316331461251a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561255a57600080fd5b505afa15801561256e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259291906143d3565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156125da57600080fd5b505afa1580156125ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261291906143d3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561267057600080fd5b505afa158015612684573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a891906143d3565b90506001600160a01b03811661287357816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156126f157600080fd5b505afa158015612705573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272991906143d3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561277157600080fd5b505afa158015612785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a991906143d3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561280957600080fd5b505af115801561281d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284191906143d3565b6016805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905561289c565b6016805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555b6015805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155610ef0903090600019612ae2565b6000546001600160a01b031633146129235760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b602354610100900460ff161561297b5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b80565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156129b5573d6000803e3d6000fd5b50565b6000546001600160a01b03163314612a065760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b8284601254612a159190614348565b612a1f9190614367565b6021556012548190612a32908490614348565b612a3c9190614367565b60225550505050565b6023546040517ffe575a870000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092620100009004169063fe575a879060240160206040518083038186803b158015612aaa57600080fd5b505afa158015612abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7f91906143f0565b6001600160a01b038316612b385760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b80565b6001600160a01b038216612b8e5760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b80565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612c6d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610b80565b6001600160a01b038316612ce95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610b80565b60008211612d5f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610b80565b612d6984846131de565b15612f525760235460ff16612dc05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b80565b6001600160a01b03841660009081526003602052604090205460ff1680612dff57506001600160a01b03831660009081526003602052604090205460ff165b15612e7c57601b54821115612e7c5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201527f78416d6f756e742e0000000000000000000000000000000000000000000000006064820152608401610b80565b6001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590612ec257506001600160a01b03831660009081526003602052604090205460ff16155b15612f5257601f5482612ed485611b20565b612ede91906143a2565b1115612f525760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201527f616c6c657453697a652e000000000000000000000000000000000000000000006064820152608401610b80565b6001600160a01b03841660009081526006602052604090205460019060ff1680612f9457506001600160a01b03841660009081526006602052604090205460ff165b15612f9d575060005b6001600160a01b03841660009081526003602052604090205460ff16156130385760185474010000000000000000000000000000000000000000900460ff1615801561300457506018547501000000000000000000000000000000000000000000900460ff165b1561303857600061301430611b20565b9050602154811061303657602254811061302d57506022545b6130368161329b565b505b613044858585846135a4565b95945050505050565b60135460125460009190825b6008548110156131a55782600160006008848154811061307b5761307b614292565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806130e657508160026000600884815481106130bf576130bf614292565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15613103576012546013546130fb9190614367565b935050505090565b600160006008838154811061311a5761311a614292565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461314990846142f0565b9250600260006008838154811061316257613162614292565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461319190836142f0565b91508061319d81614307565b915050613059565b506012546013546131b69190614367565b8210156131d4576012546013546131cd9190614367565b9250505090565b6131cd8183614367565b600080546001600160a01b0384811691161480159061320b57506000546001600160a01b03838116911614155b801561323057506001600160a01b03821660009081526009602052604090205460ff16155b801561325557506001600160a01b03831660009081526009602052604090205460ff16155b801561326c57506001600160a01b03821661dead14155b801561328057506001600160a01b03821615155b801561133457506001600160a01b0383163014159392505050565b601880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055600f5461ffff640100000000909104166132f357613579565b3060009081526005602090815260408083206015546001600160a01b031684529091529020546000191461334c573060009081526005602090815260408083206015546001600160a01b03168452909152902060001990555b604080516002808252606082018352600092602083019080368337019050509050308160008151811061338157613381614292565b6001600160a01b03928316602091820292909201810191909152601554604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b1580156133ee57600080fd5b505afa158015613402573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061342691906143d3565b8160018151811061343957613439614292565b6001600160a01b0392831660209182029290920101526015546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac9479061349890859060009086903090429060040161440d565b600060405180830381600087803b1580156134b257600080fd5b505af11580156134c6573d6000803e3d6000fd5b50505050600047111561357757601754600f546001600160a01b03909116906108fc9061ffff640100000000820481169161350991620100009091041647614348565b6135139190614367565b6040518115909202916000818181858888f1935050505015801561353b573d6000803e3d6000fd5b506018546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015613575573d6000803e3d6000fd5b505b505b50601880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b602354600090610100900460ff16613650576135c08585613956565b602354610100900460ff161580156135dd57506135dd85856131de565b156136505760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060448201527f74696d652e0000000000000000000000000000000000000000000000000000006064820152608401610b80565b600061365e86868686613b02565b60808101516001600160a01b038816600090815260016020526040902054919250613688916142f0565b6001600160a01b03808816600090815260016020526040808220939093556060840151918816815291909120546136bf91906143a2565b6001600160a01b0380871660009081526001602090815260408083209490945591891681526007909152205460ff16801561371357506001600160a01b03851660009081526007602052604090205460ff16155b1561375a576001600160a01b03861660009081526002602052604090205461373c9085906142f0565b6001600160a01b03871660009081526002602052604090205561389a565b6001600160a01b03861660009081526007602052604090205460ff1615801561379b57506001600160a01b03851660009081526007602052604090205460ff165b156137e35780516001600160a01b0386166000908152600260205260409020546137c591906143a2565b6001600160a01b03861660009081526002602052604090205561389a565b6001600160a01b03861660009081526007602052604090205460ff16801561382357506001600160a01b03851660009081526007602052604090205460ff165b1561389a576001600160a01b03861660009081526002602052604090205461384c9085906142f0565b6001600160a01b038088166000908152600260205260408082209390935583519188168152919091205461388091906143a2565b6001600160a01b0386166000908152600260205260409020555b6040810151156138b2576138b2868260400151613ea9565b60008160a0015111806138c9575060008160200151115b156138ea578060a00151601360008282546138e491906142f0565b90915550505b80602001516014600082825461390091906143a2565b909155505080516040519081526001600160a01b0386811691908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600195945050505050565b602354610100900460ff16156139d45760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152608401610b80565b6139de82826131de565b1580156139f857506016546001600160a01b038281169116145b15610ef2576001600160a01b038083166000908152600960205260409020805460ff19166001179055602380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179081905562010000900416613a8a57602380547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163062010000021790555b601880547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a15050565b613b3b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b613b746040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000613b7e61304d565b9050613b8a8186614348565b6080830152613b9987876131de565b15613c79576023546040517fecd07a530000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a5390606401602060405180830381600087803b158015613c1457600080fd5b505af1925050508015613c62575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252613c5f918101906143f0565b60015b613c6b57600080fd5b905080613c7757600080fd5b505b8315613e53576001600160a01b03861660009081526003602052604090205460ff1615613cea57600d54600b805461ffff80841663ffffffff1990921691909117620100008085048316021765ffff0000000019166401000000009384900491909116909202919091179055613d9b565b6001600160a01b03871660009081526003602052604090205460ff1615613d5557600c54600b805461ffff80841663ffffffff1990921691909117620100008085048316021765ffff0000000019166401000000009384900491909116909202919091179055613d9b565b600e54600b805461ffff80841663ffffffff1990921691909117620100008085048316021765ffff00000000191664010000000093849004919091169092029190911790555b601054600b5461ffff6601000000000000909204821691613dbd911687614348565b613dc79190614367565b6020830152601054600b5461ffff6601000000000000909204821691613dff9164010000000081048216916201000090910416614322565b613e0d9061ffff1687614348565b613e179190614367565b604083018190526020830151613e2d91906143a2565b613e3790866142f0565b82526020820151613e49908290614348565b60a0830152613e6c565b6000602083018190526040830181905285835260a08301525b808260400151613e7c9190614348565b8260a00151613e8b91906143a2565b8260800151613e9a91906142f0565b60608301525095945050505050565b613eb161304d565b613ebb9082614348565b30600090815260016020526040902054613ed591906143a2565b3060009081526001602090815260408083209390935560079052205460ff1615613f255730600090815260026020526040902054613f149082906143a2565b306000908152600260205260409020555b60405181815230906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b81811015613f9657858101830151858201604001528201613f7a565b81811115613fa8576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6001600160a01b03811681146129b557600080fd5b6000806040838503121561400457600080fd5b823561400f81613fdc565b946020939093013593505050565b80151581146129b557600080fd5b6000806040838503121561403e57600080fd5b823561404981613fdc565b915060208301356140598161401d565b809150509250929050565b803561ffff8116811461407657600080fd5b919050565b60008060006060848603121561409057600080fd5b61409984614064565b92506140a760208501614064565b91506140b560408501614064565b90509250925092565b6000806000606084860312156140d357600080fd5b83356140de81613fdc565b925060208401356140ee81613fdc565b929592945050506040919091013590565b6000806040838503121561411257600080fd5b50508035926020909101359150565b6000806000806080858703121561413757600080fd5b84356141428161401d565b935060208501356141528161401d565b925060408501356141628161401d565b915060608501356141728161401d565b939692955090935050565b60006020828403121561418f57600080fd5b5035919050565b6000602082840312156141a857600080fd5b813561133481613fdc565b600080604083850312156141c657600080fd5b6141cf83614064565b91506141dd60208401614064565b90509250929050565b6000602082840312156141f857600080fd5b81356113348161401d565b6000806040838503121561421657600080fd5b823561422181613fdc565b9150602083013561405981613fdc565b6000806000806080858703121561424757600080fd5b5050823594602084013594506040840135936060013592509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015614302576143026142c1565b500390565b600060001982141561431b5761431b6142c1565b5060010190565b600061ffff80831681851680830382111561433f5761433f6142c1565b01949350505050565b6000816000190483118215151615614362576143626142c1565b500290565b60008261439d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082198211156143b5576143b56142c1565b500190565b6000602082840312156143cc57600080fd5b5051919050565b6000602082840312156143e557600080fd5b815161133481613fdc565b60006020828403121561440257600080fd5b81516113348161401d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561445d5784516001600160a01b031683529383019391830191600101614438565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201a927297078c6c4f5553197b1d0a9bfb919a00cf6446fa9832b56866f1d2909964736f6c63430008090033
0x6000600481815566038d7ea4c68000600a908155608083905260a083905260c092909252600b805465ffffffffffff19908116909155606460e08190526101906101008190526101f4610120819052600c805485166501f401900064908117909155610140849052610160839052610180829052600d80548616821790556101a0939093526101c0919091526101e052600e805483169091179055610200919091526005610220526009610240819052600f8054909216640900050004179091556102e06040526103206102608190526102808190526102a0526127106102c052601080546001600160401b0319166727100320032003201790556011805460ff191682179055620001119162000814565b600a546200012091906200082c565b6012819055620001339060001962000864565b62000141906000196200087b565b601355601780546001600160a01b03191673905a29d4046e6f534d6c116550a24eb1ab4f715c17905560188054600161ff0160a01b031916732501fa56de1ec28189f2916c80149b867230345a1790556019808055612710601a8190556012549091620001ae916200082c565b620001ba919062000895565b601b55601a54601954600a54620001d291906200082c565b620001de919062000895565b601c556019601d556103e8601e55601e54601d546012546200020191906200082c565b6200020d919062000895565b601f55601e54601d54600a546200022591906200082c565b62000231919062000895565b60205561271060125460056200024891906200082c565b62000254919062000895565b6021556103e860125460056200026b91906200082c565b62000277919062000895565b6022556023805461ffff191690556013543360008181526001602090815260408083209490945581546001600160a01b031990811690931790915560158054737a250d5630b4cf539739df2c5dacb4c659f2488d931683179055825163c45a015560e01b81529251919263c45a01559260048083019392829003018186803b1580156200030357600080fd5b505afa15801562000318573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033e9190620008ac565b6001600160a01b031663c9c65396601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039b57600080fd5b505afa158015620003b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d69190620008ac565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200041e57600080fd5b505af115801562000433573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004599190620008ac565b601680546001600160a01b0319166001600160a01b039290921691821790556000908152600360205260409020805460ff19166001179055620004b433737a250d5630b4cf539739df2c5dacb4c659f2488d600019620005fe565b620004d730737a250d5630b4cf539739df2c5dacb4c659f2488d600019620005fe565b600160066000620004f06000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526006909252812080548316600190811790915561dead82527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280549093168117909255600990620005786000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620005a83390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601254604051620005f091815260200190565b60405180910390a3620008d7565b6001600160a01b038316620006505760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b0382166200069e5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000647565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007565781600019048211156200073a576200073a620006ff565b808516156200074857918102915b93841c93908002906200071a565b509250929050565b6000826200076f575060016200080e565b816200077e575060006200080e565b8160018114620007975760028114620007a257620007c2565b60019150506200080e565b60ff841115620007b657620007b6620006ff565b50506001821b6200080e565b5060208310610133831016604e8410600b8410161715620007e7575081810a6200080e565b620007f3838362000715565b80600019048211156200080a576200080a620006ff565b0290505b92915050565b60006200082560ff8416836200075e565b9392505050565b6000816000190483118215151615620008495762000849620006ff565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826200087657620008766200084e565b500690565b600082821015620008905762000890620006ff565b500390565b600082620008a757620008a76200084e565b500490565b600060208284031215620008bf57600080fd5b81516001600160a01b03811681146200082557600080fd5b6144b480620008e76000396000f3fe60806040526004361061034e5760003560e01c806370a08231116101bb578063bcd96a25116100f7578063dd62ed3e11610095578063f6540ec71161006f578063f6540ec714610a97578063fb78680d14610aad578063fdb78c0e14610acd578063fe575a8714610b0057600080fd5b8063dd62ed3e14610a1c578063eafb5a3c14610a62578063ee5d9c2d14610a8257600080fd5b8063c6a276c2116100d1578063c6a276c21461098b578063cab5ebea146109ab578063cf847706146109cb578063d3f6a157146109fc57600080fd5b8063bcd96a2514610909578063c2fa418f14610929578063c6831cd81461095a57600080fd5b80638965b55d116101645780638da5cb5b1161013e5780638da5cb5b1461081b57806395d89b4114610883578063a457c2d7146108c9578063a9059cbb146108e957600080fd5b80638965b55d146108395780638a63bd9b146108595780638a8c523c1461086e57600080fd5b806380c581d11161019557806380c581d1146107c257806388f82020146107e2578063893d20e81461081b57600080fd5b806370a0823114610737578063715018a6146107575780637b45d4311461076c57600080fd5b806333251a0b1161028a5780634fbee1931161023357806355dbc3691161020d57806355dbc369146106cc578063590ffdce146106e15780635c24b07414610701578063640384091461072157600080fd5b80634fbee1931461065457806350a8e0161461068d57806355d8ece6146106ac57600080fd5b8063452ed4f111610264578063452ed4f1146105fa5780634ada218b1461061a5780634fb2e45d1461063457600080fd5b806333251a0b1461059a57806339509351146105ba5780633f3cf56c146105da57600080fd5b80631b6afa2d116102f757806326003957116102d1578063260039571461051857806329dd8798146105385780632d83811914610558578063313ce5671461057857600080fd5b80631b6afa2d1461046d5780631e90afe3146104d857806323b872dd146104f857600080fd5b8063095ea7b311610328578063095ea7b3146103fc57806313e461921461042c57806318160ddd1461044e57600080fd5b806303fd2a451461035a57806306fdde031461038d5780630758d924146103dc57600080fd5b3661035557005b600080fd5b34801561036657600080fd5b5061037061dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561039957600080fd5b5060408051808201909152600981527f474f4c204420494e55000000000000000000000000000000000000000000000060208201525b6040516103849190613f69565b3480156103e857600080fd5b50601554610370906001600160a01b031681565b34801561040857600080fd5b5061041c610417366004613ff1565b610b20565b6040519015158152602001610384565b34801561043857600080fd5b5061044c61044736600461402b565b610b36565b005b34801561045a57600080fd5b506012545b604051908152602001610384565b34801561047957600080fd5b506010546104aa9061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610384565b3480156104e457600080fd5b5061044c6104f336600461407b565b610ef6565b34801561050457600080fd5b5061041c6105133660046140be565b61102c565b34801561052457600080fd5b5061044c6105333660046140ff565b6110a4565b34801561054457600080fd5b5061044c610553366004614121565b6111bb565b34801561056457600080fd5b5061045f61057336600461417d565b6112a4565b34801561058457600080fd5b5060115460405160ff9091168152602001610384565b3480156105a657600080fd5b5061044c6105b5366004614196565b61133b565b3480156105c657600080fd5b5061041c6105d5366004613ff1565b61140c565b3480156105e657600080fd5b5061044c6105f53660046140ff565b611448565b34801561060657600080fd5b50601654610370906001600160a01b031681565b34801561062657600080fd5b5060235461041c9060ff1681565b34801561064057600080fd5b5061044c61064f366004614196565b61155f565b34801561066057600080fd5b5061041c61066f366004614196565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561069957600080fd5b5060235461041c90610100900460ff1681565b3480156106b857600080fd5b5061044c6106c736600461407b565b6117a5565b3480156106d857600080fd5b5061045f6118db565b3480156106ed57600080fd5b5061044c6106fc36600461402b565b611968565b34801561070d57600080fd5b5061044c61071c366004614196565b6119e1565b34801561072d57600080fd5b5061045f601c5481565b34801561074357600080fd5b5061045f610752366004614196565b611b20565b34801561076357600080fd5b5061044c611b85565b34801561077857600080fd5b50600c5461079d9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610384565b3480156107ce57600080fd5b5061044c6107dd36600461402b565b611c35565b3480156107ee57600080fd5b5061041c6107fd366004614196565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561082757600080fd5b506000546001600160a01b0316610370565b34801561084557600080fd5b5061044c61085436600461407b565b611e22565b34801561086557600080fd5b5061041c611f58565b34801561087a57600080fd5b5061044c611fc7565b34801561088f57600080fd5b5060408051808201909152600481527f47494e550000000000000000000000000000000000000000000000000000000060208201526103cf565b3480156108d557600080fd5b5061041c6108e4366004613ff1565b612186565b3480156108f557600080fd5b5061041c610904366004613ff1565b6121bd565b34801561091557600080fd5b5061044c6109243660046141b3565b6121d4565b34801561093557600080fd5b50600e5461079d9061ffff808216916201000081048216916401000000009091041683565b34801561096657600080fd5b50600d5461079d9061ffff808216916201000081048216916401000000009091041683565b34801561099757600080fd5b5061044c6109a6366004614196565b6122d0565b3480156109b757600080fd5b5061044c6109c63660046141e6565b612370565b3480156109d757600080fd5b50600f5461079d9061ffff808216916201000081048216916401000000009091041683565b348015610a0857600080fd5b5061044c610a17366004614203565b612443565b348015610a2857600080fd5b5061045f610a37366004614203565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610a6e57600080fd5b5061044c610a7d366004614196565b6124cc565b348015610a8e57600080fd5b5061044c6128d5565b348015610aa357600080fd5b5061045f60205481565b348015610ab957600080fd5b5061044c610ac8366004614231565b6129b8565b348015610ad957600080fd5b5060185461041c907501000000000000000000000000000000000000000000900460ff1681565b348015610b0c57600080fd5b5061041c610b1b366004614196565b612a45565b6000610b2d338484612ae2565b50600192915050565b6000546001600160a01b03163314610b895760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b60018115151415610ccb576001600160a01b03821660009081526007602052604090205460ff1615610bfd5760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c7265616479206578636c756465642e000000006044820152606401610b80565b6001600160a01b03821660009081526001602052604090205415610c57576001600160a01b038216600090815260016020526040902054610c3d906112a4565b6001600160a01b0383166000908152600260205260409020555b506001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b80610ef2576001600160a01b03821660009081526007602052604090205460ff16610d385760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c726561647920696e636c756465642e000000006044820152606401610b80565b60085460011415610db4576001600160a01b038216600090815260026020908152604080832083905560079091529020805460ff191690556008805480610d8157610d81614263565b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff191690550190555050565b60005b600854811015610ef057826001600160a01b031660088281548110610dde57610dde614292565b6000918252602090912001546001600160a01b03161415610ede5760088054610e09906001906142f0565b81548110610e1957610e19614292565b600091825260209091200154600880546001600160a01b039092169183908110610e4557610e45614292565b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039485161790559185168152600282526040808220829055600790925220805460ff191690556008805480610eaa57610eaa614263565b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff19169055019055610ef0565b80610ee881614307565b915050610db7565b505b5050565b6000546001600160a01b03163314610f445760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60105461ffff90811690841611801590610f6e575060105461ffff62010000909104811690831611155b8015610f8c575060105461ffff640100000000909104811690821611155b610f9557600080fd5b610d7a81610fa38585614322565b610fad9190614322565b61ffff161115610fbc57600080fd5b600e805461ffff928316640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff00009484166201000002949094167fffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000909116179390911692909217179055565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914611091576001600160a01b03841660009081526005602090815260408083203384529091528120805484929061108b9084906142f0565b90915550505b61109c848484612bef565b949350505050565b6000546001600160a01b031633146110f25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b600081836012546111039190614348565b61110d9190614367565b90506103e860125461111f9190614367565b8110156111945760405162461bcd60e51b815260206004820152603260248201527f4d61782057616c6c657420616d74206d7573742062652061626f766520302e3160448201527f25206f6620746f74616c20737570706c792e00000000000000000000000000006064820152608401610b80565b601f819055600a5482906111a9908590614348565b6111b39190614367565b602055505050565b6000546001600160a01b031633146112095760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b6023546040517f0109da690000000000000000000000000000000000000000000000000000000081528515156004820152841515602482015283151560448201528215156064820152620100009091046001600160a01b031690630109da6990608401600060405180830381600087803b15801561128657600080fd5b505af115801561129a573d6000803e3d6000fd5b5050505050505050565b600060135482111561131e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610b80565b600061132861304d565b90506113348184614367565b9392505050565b6000546001600160a01b031633146113895760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b6023546040517f33251a0b0000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015262010000909204909116906333251a0b906024015b600060405180830381600087803b1580156113f157600080fd5b505af1158015611405573d6000803e3d6000fd5b5050505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610b2d9185906114439086906143a2565b612ae2565b6000546001600160a01b031633146114965760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b600081836012546114a79190614348565b6114b19190614367565b90506103e86012546114c39190614367565b8110156115385760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3125206f6620746f74616c20737570706c792e0000000000000000006064820152608401610b80565b601b819055600a54829061154d908590614348565b6115579190614367565b601c55505050565b6000546001600160a01b031633146115ad5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b6001600160a01b0381166116295760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b80565b6001600160a01b03811661dead14156116aa5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b80565b600080546116c3916001600160a01b0390911690611968565b6116ce816001611968565b6000546017546001600160a01b0390811691161415611710576017805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555b60008054611726906001600160a01b0316611b20565b111561174d5760005461174b906001600160a01b03168261174682611b20565b612bef565b505b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b031633146117f35760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60105461ffff9081169084161180159061181d575060105461ffff62010000909104811690831611155b801561183b575060105461ffff640100000000909104811690821611155b61184457600080fd5b610d7a816118528585614322565b61185c9190614322565b61ffff16111561186b57600080fd5b600c805461ffff928316640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff00009484166201000002949094167fffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000909116179390911692909217179055565b6000602360029054906101000a90046001600160a01b03166001600160a01b03166355dbc3696040518163ffffffff1660e01b815260040160206040518083038186803b15801561192b57600080fd5b505afa15801561193f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196391906143ba565b905090565b6000546001600160a01b031633146119b65760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611a2f5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b602354610100900460ff1615611a875760405162461bcd60e51b815260206004820152601860248201527f4c697175696469747920697320616c726561647920696e2e00000000000000006044820152606401610b80565b6001600160a01b038116301415611ae05760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b80565b602380546001600160a01b0390921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b6001600160a01b03811660009081526007602052604081205460ff1615611b5d57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054611b7f906112a4565b92915050565b6000546001600160a01b03163314611bd35760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60008054611bec916001600160a01b0390911690611968565b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314611c835760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b80611d2b576001600160a01b03828116600081815260036020526040808220805460ff1916905560235490517f80c581d100000000000000000000000000000000000000000000000000000000815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050505050565b60045415611d92576203f48060045442611d4591906142f0565b11611d925760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f74207365742061206e657720706169722074686973207765656b216044820152606401610b80565b6001600160a01b0382811660008181526003602052604090819020805460ff1916600190811790915542600490815560235492517f80c581d1000000000000000000000000000000000000000000000000000000008152908101939093526024830152620100009004909116906380c581d190604401600060405180830381600087803b158015611d0f57600080fd5b6000546001600160a01b03163314611e705760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60105461ffff90811690841611801590611e9a575060105461ffff62010000909104811690831611155b8015611eb8575060105461ffff640100000000909104811690821611155b611ec157600080fd5b610d7a81611ecf8585614322565b611ed99190614322565b61ffff161115611ee857600080fd5b600d805461ffff928316640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff00009484166201000002949094167fffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000909116179390911692909217179055565b600080546001600160a01b03163314611fa75760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b601554611fc19030906001600160a01b0316600019612ae2565b50600190565b6000546001600160a01b031633146120155760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60235460ff16156120685760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b80565b602354610100900460ff166120bf5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b80565b6120ca306001610b36565b6016546120e1906001600160a01b03166001610b36565b6023546016546040517f4b38f1d40000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff42166044820152620100009092041690634b38f1d490606401600060405180830381600087803b15801561216557600080fd5b505af1925050508015612176575060015b506023805460ff19166001179055565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610b2d9185906114439086906142f0565b60006121ca338484612bef565b5060019392505050565b6000546001600160a01b031633146122225760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b606361222e8284614322565b61ffff1610156122805760405162461bcd60e51b815260206004820152601b60248201527f4d7573742061646420757020746f2031303025206f72203939252e00000000006044820152606401610b80565b600f805461ffff838116620100000263ffffffff19909216908516171790556122a98183614322565b600f805461ffff929092166401000000000265ffff00000000199092169190911790555050565b6000546001600160a01b0316331461231e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b6023546040517fc6a276c20000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152620100009092049091169063c6a276c2906024016113d7565b6000546001600160a01b031633146123be5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b601880548215157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579061243890831515815260200190565b60405180910390a150565b6000546001600160a01b031633146124915760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b601780546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560188054929093169116179055565b6000546001600160a01b0316331461251a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561255a57600080fd5b505afa15801561256e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259291906143d3565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156125da57600080fd5b505afa1580156125ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261291906143d3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561267057600080fd5b505afa158015612684573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a891906143d3565b90506001600160a01b03811661287357816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156126f157600080fd5b505afa158015612705573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272991906143d3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561277157600080fd5b505afa158015612785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a991906143d3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561280957600080fd5b505af115801561281d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284191906143d3565b6016805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905561289c565b6016805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555b6015805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155610ef0903090600019612ae2565b6000546001600160a01b031633146129235760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b602354610100900460ff161561297b5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b80565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156129b5573d6000803e3d6000fd5b50565b6000546001600160a01b03163314612a065760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b80565b8284601254612a159190614348565b612a1f9190614367565b6021556012548190612a32908490614348565b612a3c9190614367565b60225550505050565b6023546040517ffe575a870000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092620100009004169063fe575a879060240160206040518083038186803b158015612aaa57600080fd5b505afa158015612abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7f91906143f0565b6001600160a01b038316612b385760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b80565b6001600160a01b038216612b8e5760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b80565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612c6d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610b80565b6001600160a01b038316612ce95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610b80565b60008211612d5f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610b80565b612d6984846131de565b15612f525760235460ff16612dc05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b80565b6001600160a01b03841660009081526003602052604090205460ff1680612dff57506001600160a01b03831660009081526003602052604090205460ff165b15612e7c57601b54821115612e7c5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201527f78416d6f756e742e0000000000000000000000000000000000000000000000006064820152608401610b80565b6001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590612ec257506001600160a01b03831660009081526003602052604090205460ff16155b15612f5257601f5482612ed485611b20565b612ede91906143a2565b1115612f525760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201527f616c6c657453697a652e000000000000000000000000000000000000000000006064820152608401610b80565b6001600160a01b03841660009081526006602052604090205460019060ff1680612f9457506001600160a01b03841660009081526006602052604090205460ff165b15612f9d575060005b6001600160a01b03841660009081526003602052604090205460ff16156130385760185474010000000000000000000000000000000000000000900460ff1615801561300457506018547501000000000000000000000000000000000000000000900460ff165b1561303857600061301430611b20565b9050602154811061303657602254811061302d57506022545b6130368161329b565b505b613044858585846135a4565b95945050505050565b60135460125460009190825b6008548110156131a55782600160006008848154811061307b5761307b614292565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806130e657508160026000600884815481106130bf576130bf614292565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15613103576012546013546130fb9190614367565b935050505090565b600160006008838154811061311a5761311a614292565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461314990846142f0565b9250600260006008838154811061316257613162614292565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461319190836142f0565b91508061319d81614307565b915050613059565b506012546013546131b69190614367565b8210156131d4576012546013546131cd9190614367565b9250505090565b6131cd8183614367565b600080546001600160a01b0384811691161480159061320b57506000546001600160a01b03838116911614155b801561323057506001600160a01b03821660009081526009602052604090205460ff16155b801561325557506001600160a01b03831660009081526009602052604090205460ff16155b801561326c57506001600160a01b03821661dead14155b801561328057506001600160a01b03821615155b801561133457506001600160a01b0383163014159392505050565b601880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055600f5461ffff640100000000909104166132f357613579565b3060009081526005602090815260408083206015546001600160a01b031684529091529020546000191461334c573060009081526005602090815260408083206015546001600160a01b03168452909152902060001990555b604080516002808252606082018352600092602083019080368337019050509050308160008151811061338157613381614292565b6001600160a01b03928316602091820292909201810191909152601554604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b1580156133ee57600080fd5b505afa158015613402573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061342691906143d3565b8160018151811061343957613439614292565b6001600160a01b0392831660209182029290920101526015546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac9479061349890859060009086903090429060040161440d565b600060405180830381600087803b1580156134b257600080fd5b505af11580156134c6573d6000803e3d6000fd5b50505050600047111561357757601754600f546001600160a01b03909116906108fc9061ffff640100000000820481169161350991620100009091041647614348565b6135139190614367565b6040518115909202916000818181858888f1935050505015801561353b573d6000803e3d6000fd5b506018546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015613575573d6000803e3d6000fd5b505b505b50601880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b602354600090610100900460ff16613650576135c08585613956565b602354610100900460ff161580156135dd57506135dd85856131de565b156136505760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060448201527f74696d652e0000000000000000000000000000000000000000000000000000006064820152608401610b80565b600061365e86868686613b02565b60808101516001600160a01b038816600090815260016020526040902054919250613688916142f0565b6001600160a01b03808816600090815260016020526040808220939093556060840151918816815291909120546136bf91906143a2565b6001600160a01b0380871660009081526001602090815260408083209490945591891681526007909152205460ff16801561371357506001600160a01b03851660009081526007602052604090205460ff16155b1561375a576001600160a01b03861660009081526002602052604090205461373c9085906142f0565b6001600160a01b03871660009081526002602052604090205561389a565b6001600160a01b03861660009081526007602052604090205460ff1615801561379b57506001600160a01b03851660009081526007602052604090205460ff165b156137e35780516001600160a01b0386166000908152600260205260409020546137c591906143a2565b6001600160a01b03861660009081526002602052604090205561389a565b6001600160a01b03861660009081526007602052604090205460ff16801561382357506001600160a01b03851660009081526007602052604090205460ff165b1561389a576001600160a01b03861660009081526002602052604090205461384c9085906142f0565b6001600160a01b038088166000908152600260205260408082209390935583519188168152919091205461388091906143a2565b6001600160a01b0386166000908152600260205260409020555b6040810151156138b2576138b2868260400151613ea9565b60008160a0015111806138c9575060008160200151115b156138ea578060a00151601360008282546138e491906142f0565b90915550505b80602001516014600082825461390091906143a2565b909155505080516040519081526001600160a01b0386811691908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600195945050505050565b602354610100900460ff16156139d45760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152608401610b80565b6139de82826131de565b1580156139f857506016546001600160a01b038281169116145b15610ef2576001600160a01b038083166000908152600960205260409020805460ff19166001179055602380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179081905562010000900416613a8a57602380547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163062010000021790555b601880547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a15050565b613b3b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b613b746040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000613b7e61304d565b9050613b8a8186614348565b6080830152613b9987876131de565b15613c79576023546040517fecd07a530000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a5390606401602060405180830381600087803b158015613c1457600080fd5b505af1925050508015613c62575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252613c5f918101906143f0565b60015b613c6b57600080fd5b905080613c7757600080fd5b505b8315613e53576001600160a01b03861660009081526003602052604090205460ff1615613cea57600d54600b805461ffff80841663ffffffff1990921691909117620100008085048316021765ffff0000000019166401000000009384900491909116909202919091179055613d9b565b6001600160a01b03871660009081526003602052604090205460ff1615613d5557600c54600b805461ffff80841663ffffffff1990921691909117620100008085048316021765ffff0000000019166401000000009384900491909116909202919091179055613d9b565b600e54600b805461ffff80841663ffffffff1990921691909117620100008085048316021765ffff00000000191664010000000093849004919091169092029190911790555b601054600b5461ffff6601000000000000909204821691613dbd911687614348565b613dc79190614367565b6020830152601054600b5461ffff6601000000000000909204821691613dff9164010000000081048216916201000090910416614322565b613e0d9061ffff1687614348565b613e179190614367565b604083018190526020830151613e2d91906143a2565b613e3790866142f0565b82526020820151613e49908290614348565b60a0830152613e6c565b6000602083018190526040830181905285835260a08301525b808260400151613e7c9190614348565b8260a00151613e8b91906143a2565b8260800151613e9a91906142f0565b60608301525095945050505050565b613eb161304d565b613ebb9082614348565b30600090815260016020526040902054613ed591906143a2565b3060009081526001602090815260408083209390935560079052205460ff1615613f255730600090815260026020526040902054613f149082906143a2565b306000908152600260205260409020555b60405181815230906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b81811015613f9657858101830151858201604001528201613f7a565b81811115613fa8576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6001600160a01b03811681146129b557600080fd5b6000806040838503121561400457600080fd5b823561400f81613fdc565b946020939093013593505050565b80151581146129b557600080fd5b6000806040838503121561403e57600080fd5b823561404981613fdc565b915060208301356140598161401d565b809150509250929050565b803561ffff8116811461407657600080fd5b919050565b60008060006060848603121561409057600080fd5b61409984614064565b92506140a760208501614064565b91506140b560408501614064565b90509250925092565b6000806000606084860312156140d357600080fd5b83356140de81613fdc565b925060208401356140ee81613fdc565b929592945050506040919091013590565b6000806040838503121561411257600080fd5b50508035926020909101359150565b6000806000806080858703121561413757600080fd5b84356141428161401d565b935060208501356141528161401d565b925060408501356141628161401d565b915060608501356141728161401d565b939692955090935050565b60006020828403121561418f57600080fd5b5035919050565b6000602082840312156141a857600080fd5b813561133481613fdc565b600080604083850312156141c657600080fd5b6141cf83614064565b91506141dd60208401614064565b90509250929050565b6000602082840312156141f857600080fd5b81356113348161401d565b6000806040838503121561421657600080fd5b823561422181613fdc565b9150602083013561405981613fdc565b6000806000806080858703121561424757600080fd5b5050823594602084013594506040840135936060013592509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015614302576143026142c1565b500390565b600060001982141561431b5761431b6142c1565b5060010190565b600061ffff80831681851680830382111561433f5761433f6142c1565b01949350505050565b6000816000190483118215151615614362576143626142c1565b500290565b60008261439d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082198211156143b5576143b56142c1565b500190565b6000602082840312156143cc57600080fd5b5051919050565b6000602082840312156143e557600080fd5b815161133481613fdc565b60006020828403121561440257600080fd5b81516113348161401d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561445d5784516001600160a01b031683529383019391830191600101614438565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201a927297078c6c4f5553197b1d0a9bfb919a00cf6446fa9832b56866f1d2909964736f6c63430008090033