60e06040526010805461ffff19166101001790556015805460ff19169055348015610028575f80fd5b50604051806040016040528060088152602001673a32b9ba34b7339960c11b815250604051806040016040528060088152602001673237b73a313abc9960c11b815250816003908161007a9190610851565b5060046100878282610851565b5050505f6100996105cf60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506100f93368056bc75e2d631000006105d3565b5f4660010361011d5750737a250d5630b4cf539739df2c5dacb4c659f2488d6101f8565b466005036101405750737a250d5630b4cf539739df2c5dacb4c659f2488d6101f8565b46606103610163575073d99d1c33f9fc3444f8101754abc46c52416550d16101f8565b4661a4b1036101875750731b02da8cb0d097eb8d57a175b88c7d8b479975066101f8565b46612105036101ab5750734752ba5dbc23f44d87826276bf6fd6b1c372ad246101f8565b60405162461bcd60e51b815260206004820152601460248201527f436861696e206e6f7420636f6e6669677572656400000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b03811660a0526103e861021160025490565b61021c90600a61091f565b610226919061093c565b601380546001600160801b0319166001600160801b03929092169190911790556103e861025260025490565b61025d90600a61091f565b610267919061093c565b601380546001600160801b03928316600160801b029216919091179055620186a061029160025490565b61029c90601961091f565b6102a6919061093c565b601155600a8054336001600160a01b03199182168117909255600b80549091169091179055600c805460646001600160c01b03199091168117918290556001600160401b0368010000000000000000830481169261030f92600160801b9091049091169061095b565b610319919061095b565b600c80546001600160c01b0316600160c01b6001600160401b0393841602179055600d805460646001600160c01b031990911681179182905568010000000000000000820483169261037392600160801b9004169061095b565b61037d919061095b565b600d80546001600160401b0392909216600160c01b026001600160c01b03909216919091179055600e805460ff60f01b1916600160f01b17905560a051604080516315ab88c960e31b815290516001600160a01b039092169163ad5c4648916004808201926020929091908290030181865afa1580156103ff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610423919061097a565b6001600160a01b031660c0816001600160a01b03168152505060a0516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561047a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049e919061097a565b60c0516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303815f875af11580156104ec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610510919061097a565b6001600160a01b0390811660808190525f9081526009602090815260408083208054600160ff19918216811790925560078452828520805482168317905533808652838620805483168417905530808752848720805484168517905590865260069094528285208054821683179055838552828520805482168317905560a05195861685529190932080549091169092179091556105af915f19610696565b6105c93360a0516105c461069060201b60201c565b610696565b506109ba565b3390565b6001600160a01b0382166106295760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101ef565b8060025f82825461063a91906109a7565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60025490565b6001600160a01b0383166106f85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016101ef565b6001600160a01b0382166107595760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016101ef565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806107e157607f821691505b6020821081036107ff57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561084c57805f5260205f20601f840160051c8101602085101561082a5750805b601f840160051c820191505b81811015610849575f8155600101610836565b50505b505050565b81516001600160401b0381111561086a5761086a6107b9565b61087e8161087884546107cd565b84610805565b6020601f8211600181146108b0575f83156108995750848201515b5f19600385901b1c1916600184901b178455610849565b5f84815260208120601f198516915b828110156108df57878501518255602094850194600190920191016108bf565b50848210156108fc57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109365761093661090b565b92915050565b5f8261095657634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160401b0381811683821601908111156109365761093661090b565b5f6020828403121561098a575f80fd5b81516001600160a01b03811681146109a0575f80fd5b9392505050565b808201808211156109365761093661090b565b60805160a05160c051613081610a1c5f395f81816107cf01526129de01525f81816102e9015281816122800152612a3501525f81816104a2015281816115ec015281816122bd01528181612377015281816126c001526126e701526130815ff3fe608060405260043610610282575f3560e01c8063751039fc11610155578063b0249cc6116100be578063d00efb2f11610078578063d00efb2f146108c9578063dd62ed3e146108de578063f270fde4146108fd578063f2fde38b14610947578063f5648a4f14610966578063f8686f071461097a575f80fd5b8063b0249cc6146107f1578063bedafd011461081f578063c78d0fa01461083e578063c876d0b914610853578063cc1776d31461086c578063ccad03e1146108aa575f80fd5b806395d89b411161010f57806395d89b41146107205780639e93ad8e14610734578063a457c2d714610761578063a5ece94114610780578063a9059cbb1461079f578063ad5c4648146107be575f80fd5b8063751039fc14610670578063860a32ec146106845780638a8c523c146106a25780638becc57d146106b65780638d3e6e40146106d55780638da5cb5b14610703575f80fd5b80633ad10ef6116101f75780635a90a49e116101b15780635a90a49e1461054e578063627e9d8e1461057c57806366ebd39a146105955780636d7adcad146105b457806370a0823114610628578063715018a61461065c575f80fd5b80633ad10ef6146104265780633bbac57914610445578063432e95a51461047c578063452ed4f1146104915780634f7041a5146104c457806353371be014610535575f80fd5b80632104591811610248578063210459181461037057806323b872dd1461038f578063286965a7146103ae578063313ce567146103cd57806336e18e19146103e85780633950935114610407575f80fd5b8062ae3bf81461028d57806306fdde03146102ae5780630758d924146102d8578063095ea7b31461032357806318160ddd14610352575f80fd5b3661028957005b5f80fd5b348015610298575f80fd5b506102ac6102a7366004612b55565b61098e565b005b3480156102b9575f80fd5b506102c2610a70565b6040516102cf9190612b75565b60405180910390f35b3480156102e3575f80fd5b5061030b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102cf565b34801561032e575f80fd5b5061034261033d366004612baa565b610b00565b60405190151581526020016102cf565b34801561035d575f80fd5b506002545b6040519081526020016102cf565b34801561037b575f80fd5b506102ac61038a366004612bd2565b610b19565b34801561039a575f80fd5b506103426103a9366004612be9565b610c64565b3480156103b9575f80fd5b506102ac6103c8366004612c39565b610c87565b3480156103d8575f80fd5b50604051601281526020016102cf565b3480156103f3575f80fd5b506102ac610402366004612c79565b610e24565b348015610412575f80fd5b50610342610421366004612baa565b610f3c565b348015610431575f80fd5b50600b5461030b906001600160a01b031681565b348015610450575f80fd5b5061034261045f366004612b55565b6001600160a01b03165f9081526016602052604090205460ff1690565b348015610487575f80fd5b5061036260125481565b34801561049c575f80fd5b5061030b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104cf575f80fd5b50600c54610502906001600160401b0380821691600160401b8104821691600160801b8204811691600160c01b90041684565b604080516001600160401b03958616815293851660208501529184169183019190915290911660608201526080016102cf565b348015610540575f80fd5b506008546103429060ff1681565b348015610559575f80fd5b50610342610568366004612b55565b60066020525f908152604090205460ff1681565b348015610587575f80fd5b506010546103429060ff1681565b3480156105a0575f80fd5b506102ac6105af366004612c79565b610f5d565b3480156105bf575f80fd5b50600e546105f3906001600160501b0380821691600160501b8104821691600160a01b82041690600160f01b900460ff1684565b6040516102cf94939291906001600160501b039485168152928416602084015292166040820152901515606082015260800190565b348015610633575f80fd5b50610362610642366004612b55565b6001600160a01b03165f9081526020819052604090205490565b348015610667575f80fd5b506102ac611071565b34801561067b575f80fd5b506102ac6110e4565b34801561068f575f80fd5b5060105461034290610100900460ff1681565b3480156106ad575f80fd5b506102ac611184565b3480156106c1575f80fd5b506102ac6106d0366004612c39565b611219565b3480156106e0575f80fd5b506103426106ef366004612b55565b60076020525f908152604090205460ff1681565b34801561070e575f80fd5b506005546001600160a01b031661030b565b34801561072b575f80fd5b506102c26113b6565b34801561073f575f80fd5b5061074961271081565b6040516001600160401b0390911681526020016102cf565b34801561076c575f80fd5b5061034261077b366004612baa565b6113c5565b34801561078b575f80fd5b50600a5461030b906001600160a01b031681565b3480156107aa575f80fd5b506103426107b9366004612baa565b61143f565b3480156107c9575f80fd5b5061030b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107fc575f80fd5b5061034261080b366004612b55565b60096020525f908152604090205460ff1681565b34801561082a575f80fd5b506102ac610839366004612caf565b61144c565b348015610849575f80fd5b5061036260115481565b34801561085e575f80fd5b506015546103429060ff1681565b348015610877575f80fd5b50600d54610502906001600160401b0380821691600160401b8104821691600160801b8204811691600160c01b90041684565b3480156108b5575f80fd5b506102ac6108c4366004612caf565b611576565b3480156108d4575f80fd5b5061036260145481565b3480156108e9575f80fd5b506103626108f8366004612ce4565b6116bb565b348015610908575f80fd5b50601354610927906001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016102cf565b348015610952575f80fd5b506102ac610961366004612b55565b6116e5565b348015610971575f80fd5b506102ac6117cf565b348015610985575f80fd5b506102ac611824565b6001600160a01b0381166109e95760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f74206265203000000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610a2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a519190612d15565b600b54909150610a6c9083906001600160a01b0316836118a0565b5050565b606060038054610a7f90612d2c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aab90612d2c565b8015610af65780601f10610acd57610100808354040283529160200191610af6565b820191905f5260205f20905b815481529060010190602001808311610ad957829003601f168201915b5050505050905090565b5f33610b0d8185856118f7565b60019150505b92915050565b6005546001600160a01b03163314610b435760405162461bcd60e51b81526004016109e090612d64565b620186a0610b5060025490565b610b5b906001612dad565b610b659190612dd8565b811015610bd25760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109e0565b6103e8610bde60025490565b610be9906005612dad565b610bf39190612dd8565b811115610c5f5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109e0565b601155565b5f33610c71858285611a1a565b610c7c858585611a8c565b506001949350505050565b6005546001600160a01b03163314610cb15760405162461bcd60e51b81526004016109e090612d64565b604080516080810182525f60608201526001600160401b03858116825284811692820192909252908216602082015281610ceb8486612deb565b610cf59190612deb565b6001600160401b0316606082018190526103e8101580610d2f5750600d5460608201516001600160401b03600160c01b9092048216911611155b610d705760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772031302560701b60448201526064016109e0565b60608101516040516001600160401b0390911681527fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c979060200160405180910390a18051600d8054602084015160408501516060909501516001600160401b03908116600160c01b026001600160c01b03968216600160801b02969096166001600160801b03928216600160401b026001600160801b03199094169190951617919091171691909117919091179055505050565b6005546001600160a01b03163314610e4e5760405162461bcd60e51b81526004016109e090612d64565b610e5a6012600a612eed565b6103e8610e6660025490565b610e71906001612dad565b610e7b9190612dd8565b610e859190612dd8565b816001600160801b03161015610ec75760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b60448201526064016109e0565b610ed36012600a612eed565b610ee6906001600160801b038316612dad565b601380546001600160801b0319166001600160801b039290921691821790556040519081527f6710da7d4acedae09cb83751ae24c150719ef67dcbc1e02049f171d13c6b44e6906020015b60405180910390a150565b5f33610b0d818585610f4e83836116bb565b610f589190612efb565b6118f7565b6005546001600160a01b03163314610f875760405162461bcd60e51b81526004016109e090612d64565b610f936012600a612eed565b6103e8610f9f60025490565b610faa906001612dad565b610fb49190612dd8565b610fbe9190612dd8565b816001600160801b031610156110005760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b60448201526064016109e0565b61100c6012600a612eed565b61101f906001600160801b038316612dad565b601380546001600160801b03908116600160801b93821684021791829055604051929091041681527fde064515fae8f8bb6d8ff19d2c6ba704322def7494147d8a971266430ade078890602001610f31565b6005546001600160a01b0316331461109b5760405162461bcd60e51b81526004016109e090612d64565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461110e5760405162461bcd60e51b81526004016109e090612d64565b6010805461ff0019169055604080518082019091525f80825260208201525f61113660025490565b6001600160801b03811680845260208401819052600160801b8102176013556040519091507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c905f90a15050565b6005546001600160a01b031633146111ae5760405162461bcd60e51b81526004016109e090612d64565b60085460ff16156112015760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c656400000000000000000060448201526064016109e0565b6008805460ff19166001179055436014819055601255565b6005546001600160a01b031633146112435760405162461bcd60e51b81526004016109e090612d64565b604080516080810182525f60608201526001600160401b0385811682528481169282019290925290821660208201528161127d8486612deb565b6112879190612deb565b6001600160401b0316606082018190526103e81015806112c15750600c5460608201516001600160401b03600160c01b9092048216911611155b6113025760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772031302560701b60448201526064016109e0565b60608101516040516001600160401b0390911681527f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece05089060200160405180910390a18051600c8054602084015160408501516060909501516001600160401b03908116600160c01b026001600160c01b03968216600160801b02969096166001600160801b03928216600160401b026001600160801b03199094169190951617919091171691909117919091179055505050565b606060048054610a7f90612d2c565b5f33816113d282866116bb565b9050838110156114325760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109e0565b610c7c82868684036118f7565b5f33610b0d818585611a8c565b6005546001600160a01b031633146114765760405162461bcd60e51b81526004016109e090612d64565b6001600160a01b0382166114bb5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b60448201526064016109e0565b306001600160a01b038316036115135760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420756e6578656d707420636f6e7472616374000000000000000060448201526064016109e0565b6001600160a01b0382165f81815260066020908152604091829020805460ff19168515159081179091558251938452908301527f998cce27cbf44405c67eb636a634d5e2f2e6ff248b3d71fbbbb022f3c4c6dd2d91015b60405180910390a15050565b6005546001600160a01b031633146115a05760405162461bcd60e51b81526004016109e090612d64565b6001600160a01b0382166115e55760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b60448201526064016109e0565b80611660577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036116605760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb32903830b4b960711b60448201526064016109e0565b6001600160a01b0382165f81815260076020908152604091829020805460ff19168515159081179091558251938452908301527f8f9f40630a1d139e6cf69b4f447ca47a36f10a017524efaa38252e516fa227ce910161156a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6005546001600160a01b0316331461170f5760405162461bcd60e51b81526004016109e090612d64565b6001600160a01b0381166117745760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109e0565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600b546040515f916001600160a01b03169047908381818185875af1925050503d805f8114611819576040519150601f19603f3d011682016040523d82523d5f602084013e61181e565b606091505b50505050565b6005546001600160a01b0316331461184e5760405162461bcd60e51b81526004016109e090612d64565b60155460ff166118945760405162461bcd60e51b8152602060048201526011602482015270416c72656164792064697361626c65642160781b60448201526064016109e0565b6015805460ff19169055565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526118f2908490611bb7565b505050565b6001600160a01b0383166119595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109e0565b6001600160a01b0382166119ba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109e0565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f611a2584846116bb565b90505f19811461181e5781811015611a7f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109e0565b61181e84848484036118f7565b6001600160a01b0383165f9081526006602052604090205460ff16158015611acc57506001600160a01b0382165f9081526006602052604090205460ff16155b15611bac576001600160a01b0383165f9081526016602052604090205460ff16158015611b1157506001600160a01b0382165f9081526016602052604090205460ff16155b611b435760405162461bcd60e51b8152602060048201526003602482015262109bdd60ea1b60448201526064016109e0565b60085460ff16611b8a5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016109e0565b611b95838383611c88565b611b9f9082612f0e565b9050611bac83838361207b565b6118f283838361240a565b5f611c0b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166125ad9092919063ffffffff16565b8051909150156118f25780806020019051810190611c299190612f21565b6118f25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109e0565b601154305f90815260208190526040812054909111158015611cc257506001600160a01b0384165f9081526009602052604090205460ff16155b8015611cdc5750436012546002611cd99190612efb565b11155b15611ce957611ce96125c3565b604080516080810182525f8082526020808301829052828401829052606083018290526001600160a01b0387168252600990529182205460ff1615611d75575060408051608081018252600d546001600160401b038082168352600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152611dde565b6001600160a01b0386165f9081526009602052604090205460ff1615611dde575060408051608081018252600c546001600160401b038082168352600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201525b60608101516001600160401b0316156120695760408051608081018252600e546001600160501b038082168352600160501b820481166020840152600160a01b82041692820192909252600160f01b90910460ff1615156060820152601454439003611eb6576001600160a01b0387165f9081526009602052604090205460ff1615611e8357612710611e72866064612dad565b611e7c9190612dd8565b9250611edf565b6001600160a01b0386165f9081526009602052604090205460ff1615611eb157612710611e72866064612dad565b611edf565b606082015161271090611ed2906001600160401b031687612dad565b611edc9190612dd8565b92505b633b9aca0082606001516001600160401b031683604001516001600160401b031685611f0b9190612f3c565b611f159190612f65565b611f1f9190612f65565b81602001818151611f309190612f92565b6001600160501b031690525060608201518251633b9aca00916001600160401b0390811691611f60911686612f3c565b611f6a9190612f65565b611f749190612f65565b81518290611f83908390612f92565b6001600160501b031690525060608201516020830151633b9aca00916001600160401b0390811691611fb6911686612f3c565b611fc09190612f65565b611fca9190612f65565b81604001818151611fdb9190612f92565b6001600160501b039081169091528251600e80546020860151604087015160608801511515600160f01b0260ff60f01b19918716600160a01b02919091166affffffffffffffffffffff60a01b19928716600160501b026001600160a01b031990941695909616949094179190911716929092171790555061206787306001600160801b03861661240a565b505b506001600160801b0316949350505050565b601054610100900460ff16156118f2576001600160a01b038281165f9081526007602090815260408083205483835281842054825180840184526013546001600160801b038082168352600160801b90910416818601529589168552600990935292205460ff9283169391921680156120f2575082155b156121935780516001600160801b031684111561213b5760405162461bcd60e51b815260206004820152600760248201526626b0bc102a3c3760c91b60448201526064016109e0565b60208101516001600160801b03166121538386612efb565b111561218e5760405162461bcd60e51b815260206004820152600a60248201526913585e0815d85b1b195d60b21b60448201526064016109e0565b612273565b6001600160a01b0385165f9081526009602052604090205460ff1680156121d257506001600160a01b0386165f9081526007602052604090205460ff16155b1561221b5780516001600160801b031684111561218e5760405162461bcd60e51b815260206004820152600760248201526626b0bc102a3c3760c91b60448201526064016109e0565b826122735760208101516001600160801b03166122388386612efb565b11156122735760405162461bcd60e51b815260206004820152600a60248201526913585e0815d85b1b195d60b21b60448201526064016109e0565b60155460ff1615612402577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316141580156122f257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b1561240257325f908152600f6020526040902054439061231390601e612efb565b106123515760405162461bcd60e51b815260206004820152600e60248201526d5472616e736665722044656c617960901b60448201526064016109e0565b6001600160a01b038086165f908152600f602052604080822043908190553283529120557f000000000000000000000000000000000000000000000000000000000000000081169087160361240257326001600160a01b038616146124025760405162461bcd60e51b815260206004820152602160248201527f6e6f20627579696e6720746f2065787465726e616c2077616c6c6574732079656044820152601d60fa1b60648201526084016109e0565b505050505050565b6001600160a01b03831661246e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109e0565b6001600160a01b0382166124d05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109e0565b6001600160a01b0383165f90815260208190526040902054818110156125475760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109e0565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b60606125bb84845f856128b2565b949350505050565b305f9081526020819052604081205460408051608081018252600e546001600160501b03808216808452600160501b8304821660208501819052600160a01b8404909216948401859052600160f01b90920460ff161515606084015293945090925f929161263091612f92565b61263a9190612f92565b6001600160501b03169050821580612650575080155b1561265a57505050565b60115461266890600a612dad565b8311156126805760115461267d90600a612dad565b92505b60208201516001600160501b031615612778575f8183602001516001600160501b0316856126ae9190612dad565b6126b89190612dd8565b90506126e5307f00000000000000000000000000000000000000000000000000000000000000008361240a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561273d575f80fd5b505af192505050801561274e575060015b506127598185612f0e565b935082602001516001600160501b0316826127749190612f0e565b9150505b82156128765761278783612989565b604082015147905f906001600160501b03161561281557600b5460408501516001600160a01b039091169084906127c7906001600160501b031685612dad565b6127d19190612dd8565b6040515f81818185875af1925050503d805f811461280a576040519150601f19603f3d011682016040523d82523d5f602084013e61280f565b606091505b50909150505b479150811561287357600a546040516001600160a01b039091169083905f81818185875af1925050503d805f8114612868576040519150601f19603f3d011682016040523d82523d5f602084013e61286d565b606091505b50909150505b50505b505f602082018190528082526040820152600e80546060909201511515600160f01b026001600160f81b03199092169190911790555043601255565b6060824710156129135760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109e0565b5f80866001600160a01b0316858760405161292e9190612fb1565b5f6040518083038185875af1925050503d805f8114612968576040519150601f19603f3d011682016040523d82523d5f602084013e61296d565b606091505b509150915061297e87838387612a9d565b979650505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106129bc576129bc612fc7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110612a1057612a10612fc7565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac94790612a749085905f90869030904290600401612fdb565b5f604051808303815f87803b158015612a8b575f80fd5b505af1158015612402573d5f803e3d5ffd5b60608315612b0b5782515f03612b04576001600160a01b0385163b612b045760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109e0565b50816125bb565b6125bb8383815115612b205781518083602001fd5b8060405162461bcd60e51b81526004016109e09190612b75565b80356001600160a01b0381168114612b50575f80fd5b919050565b5f60208284031215612b65575f80fd5b612b6e82612b3a565b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215612bbb575f80fd5b612bc483612b3a565b946020939093013593505050565b5f60208284031215612be2575f80fd5b5035919050565b5f805f60608486031215612bfb575f80fd5b612c0484612b3a565b9250612c1260208501612b3a565b929592945050506040919091013590565b80356001600160401b0381168114612b50575f80fd5b5f805f60608486031215612c4b575f80fd5b612c5484612c23565b9250612c6260208501612c23565b9150612c7060408501612c23565b90509250925092565b5f60208284031215612c89575f80fd5b81356001600160801b0381168114612b6e575f80fd5b8015158114612cac575f80fd5b50565b5f8060408385031215612cc0575f80fd5b612cc983612b3a565b91506020830135612cd981612c9f565b809150509250929050565b5f8060408385031215612cf5575f80fd5b612cfe83612b3a565b9150612d0c60208401612b3a565b90509250929050565b5f60208284031215612d25575f80fd5b5051919050565b600181811c90821680612d4057607f821691505b602082108103612d5e57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610b1357610b13612d99565b634e487b7160e01b5f52601260045260245ffd5b5f82612de657612de6612dc4565b500490565b6001600160401b038181168382160190811115610b1357610b13612d99565b6001815b6001841115612e4557808504811115612e2957612e29612d99565b6001841615612e3757908102905b60019390931c928002612e0e565b935093915050565b5f82612e5b57506001610b13565b81612e6757505f610b13565b8160018114612e7d5760028114612e8757612ea3565b6001915050610b13565b60ff841115612e9857612e98612d99565b50506001821b610b13565b5060208310610133831016604e8410600b8410161715612ec6575081810a610b13565b612ed25f198484612e0a565b805f1904821115612ee557612ee5612d99565b029392505050565b5f612b6e60ff841683612e4d565b80820180821115610b1357610b13612d99565b81810381811115610b1357610b13612d99565b5f60208284031215612f31575f80fd5b8151612b6e81612c9f565b6001600160801b038181168382160290811690818114612f5e57612f5e612d99565b5092915050565b5f6001600160801b03831680612f7d57612f7d612dc4565b806001600160801b0384160491505092915050565b6001600160501b038181168382160190811115610b1357610b13612d99565b5f82518060208501845e5f920191825250919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561302b5783516001600160a01b0316835260209384019390920191600101613004565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220e1e32a36fb8c788fcbffd1fa82c5b5996b6bb7b9e45d2c76ab421474cd62daa564736f6c634300081a0033