60806040525f600e556012805462ffffff191660019081179091556014805460ff19169091179055348015610032575f80fd5b506040518060400160405280600d81526020016c50726f6f66206f66205065706560981b81525060405180604001604052806004815260200163504f504560e01b815250816003908161008591906107e3565b50600461009282826107e3565b5050505f6100a461040360201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f905f80516020613f0b833981519152908290a350600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051339291829163c45a0155916004808201926020929091908290030181865afa158015610145573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610169919061089d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d8919061089d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610222573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610246919061089d565b600a80546001600160a01b0319166001600160a01b03929092169182179055610270906001610407565b600a54610287906001600160a01b03166001610469565b6c0c9f2c9cd04674edea4000000060646102a28260026108de565b6102ac91906108fb565b60065560646102bc8260026108de565b6102c691906108fb565b60075560646102d68260026108de565b6102e091906108fb565b6008556127106102f18260056108de565b6102fb91906108fb565b600b555f601681905560178190556019601881905581815561031d828061091a565b610327919061091a565b610331919061091a565b6015555f601b819055601c8190556019601d819055601e829055610355828061091a565b61035f919061091a565b610369919061091a565b601a55610377836001610407565b610382306001610407565b61038f61dead6001610407565b61039a8360016104d1565b6103a53060016104d1565b6103b261dead60016104d1565b600c805473813cf038c99fbcf92bcc7dc661cc37584b66d4516001600160a01b03199182168117909255600d805490911690911790556103f2838261057b565b6103fb83610657565b50505061092d565b3390565b6001600160a01b0382165f81815260246020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382165f908152602560205260409020805460ff19168215151790556104968282610407565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab905f90a35050565b6005546001600160a01b0316331461051d5760405162461bcd60e51b815260206004820181905260248201525f80516020613eeb83398151915260448201526064015b60405180910390fd5b6001600160a01b0382165f81815260236020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166105d15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610514565b8060025f8282546105e2919061091a565b90915550506001600160a01b0382165f908152602081905260408120805483929061060e90849061091a565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b0316331461069e5760405162461bcd60e51b815260206004820181905260248201525f80516020613eeb8339815191526044820152606401610514565b6001600160a01b0381166107035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610514565b6005546040516001600160a01b038084169216905f80516020613f0b833981519152905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061077357607f821691505b60208210810361079157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156107de57805f5260205f20601f840160051c810160208510156107bc5750805b601f840160051c820191505b818110156107db575f81556001016107c8565b50505b505050565b81516001600160401b038111156107fc576107fc61074b565b6108108161080a845461075f565b84610797565b6020601f821160018114610842575f831561082b5750848201515b5f19600385901b1c1916600184901b1784556107db565b5f84815260208120601f198516915b828110156108715787850151825560209485019460019092019101610851565b508482101561088e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156108ad575f80fd5b81516001600160a01b03811681146108c3575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176108f5576108f56108ca565b92915050565b5f8261091557634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156108f5576108f56108ca565b6135b18061093a5f395ff3fe6080604052600436106103ab575f3560e01c80638da5cb5b116101e9578063d163364911610108578063ee40166e1161009d578063f63743421161006d578063f637434214610a45578063fad98e1714610a5a578063fb002c9714610a79578063fc155d1d14610a8e575f80fd5b8063ee40166e146109e8578063f11a24d3146109fd578063f2fde38b14610a12578063f5648a4f14610a31575f80fd5b8063dd62ed3e116100d8578063dd62ed3e1461095b578063e2f456051461099f578063e71dc3f5146109b4578063e800dff7146109c9575f80fd5b8063d1633649146108e9578063d257b34f14610908578063d85ba06314610927578063db9855e81461093c575f80fd5b8063a9059cbb1161017e578063bbc0c7421161014e578063bbc0c74214610874578063c18bc19514610892578063c5667f9c146108b1578063c876d0b9146108d0575f80fd5b8063a9059cbb146107fd578063aa4bde281461081c578063adb873bd14610831578063b62496f514610846575f80fd5b80639fccce32116101b95780639fccce321461079f578063a0d82dc5146107b4578063a457c2d7146107c9578063a62068ce146107e8575f80fd5b80638da5cb5b1461073a57806390107afe1461075757806395d89b41146107765780639c3b4fdc1461078a575f80fd5b80634a62bb65116102d55780636b0a894c1161026a57806372e513fa1161023a57806372e513fa146106b957806378ac39df146106d857806385ecfd28146106f757806388e765ff14610725575f80fd5b80636b0a894c146106525780636ddd17131461066757806370a0823114610686578063715018a6146106a5575f80fd5b80635a139dd4116102a55780635a139dd4146105f45780635ac4e8fe1461060957806366d602ae146106285780636a486a8e1461063d575f80fd5b80634a62bb651461059c5780634f77f6c0146105b557806351f205e4146105ca57806358a6d531146105de575f80fd5b806318160ddd1161034b578063313ce5671161031b578063313ce5671461052f578063395093511461054a578063452ed4f1146105695780634a20d0cf14610588575f80fd5b806318160ddd146104c85780631a8145bb146104e65780631d777856146104fb57806323b872dd14610510575f80fd5b8063095ea7b311610386578063095ea7b31461042d5780630ff1cb5a1461045c57806310d5de531461047b578063130a2c3c146104a9575f80fd5b806303f90771146103b657806306fdde03146103cc5780630758d924146103f6575f80fd5b366103b257005b5f80fd5b3480156103c1575f80fd5b506103ca610aad565b005b3480156103d7575f80fd5b506103e0610b20565b6040516103ed91906130aa565b60405180910390f35b348015610401575f80fd5b50600954610415906001600160a01b031681565b6040516001600160a01b0390911681526020016103ed565b348015610438575f80fd5b5061044c6104473660046130f6565b610bb0565b60405190151581526020016103ed565b348015610467575f80fd5b506103ca610476366004613120565b610bc6565b348015610486575f80fd5b5061044c61049536600461314f565b60246020525f908152604090205460ff1681565b3480156104b4575f80fd5b506103ca6104c336600461317e565b610c2d565b3480156104d3575f80fd5b506002545b6040519081526020016103ed565b3480156104f1575f80fd5b506104d860205481565b348015610506575f80fd5b506104d860225481565b34801561051b575f80fd5b5061044c61052a366004613200565b610cc1565b34801561053a575f80fd5b50604051601281526020016103ed565b348015610555575f80fd5b5061044c6105643660046130f6565b610d69565b348015610574575f80fd5b50600a54610415906001600160a01b031681565b348015610593575f80fd5b506103ca610da4565b3480156105a7575f80fd5b5060125461044c9060ff1681565b3480156105c0575f80fd5b506104d8601b5481565b3480156105d5575f80fd5b506103ca610e3e565b3480156105e9575f80fd5b50600f54431061044c565b3480156105ff575f80fd5b506104d860165481565b348015610614575f80fd5b5061044c61062336600461323e565b610f47565b348015610633575f80fd5b506104d860075481565b348015610648575f80fd5b506104d8601a5481565b34801561065d575f80fd5b506104d860115481565b348015610672575f80fd5b5060125461044c9062010000900460ff1681565b348015610691575f80fd5b506104d86106a036600461314f565b611149565b3480156106b0575f80fd5b506103ca611163565b3480156106c4575f80fd5b506103ca6106d3366004613120565b6111d6565b3480156106e3575f80fd5b506103ca6106f2366004613275565b61123d565b348015610702575f80fd5b5061044c61071136600461314f565b60106020525f908152604090205460ff1681565b348015610730575f80fd5b506104d860065481565b348015610745575f80fd5b506005546001600160a01b0316610415565b348015610762575f80fd5b506103ca61077136600461323e565b6112c5565b348015610781575f80fd5b506103e06113ae565b348015610795575f80fd5b506104d860185481565b3480156107aa575f80fd5b506104d860215481565b3480156107bf575f80fd5b506104d8601d5481565b3480156107d4575f80fd5b5061044c6107e33660046130f6565b6113bd565b3480156107f3575f80fd5b506104d8600f5481565b348015610808575f80fd5b5061044c6108173660046130f6565b611455565b348015610827575f80fd5b506104d860085481565b34801561083c575f80fd5b506104d8601e5481565b348015610851575f80fd5b5061044c61086036600461314f565b60256020525f908152604090205460ff1681565b34801561087f575f80fd5b5060125461044c90610100900460ff1681565b34801561089d575f80fd5b506103ca6108ac3660046132a1565b611461565b3480156108bc575f80fd5b506103ca6108cb366004613275565b6114d8565b3480156108db575f80fd5b5060145461044c9060ff1681565b3480156108f4575f80fd5b506103ca6109033660046132a1565b6115cb565b348015610913575f80fd5b506103ca6109223660046132a1565b61169d565b348015610932575f80fd5b506104d860155481565b348015610947575f80fd5b506103ca610956366004613275565b6117e8565b348015610966575f80fd5b506104d861097536600461323e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156109aa575f80fd5b506104d8600b5481565b3480156109bf575f80fd5b506104d860195481565b3480156109d4575f80fd5b506103ca6109e3366004613275565b6118af565b3480156109f3575f80fd5b506104d8600e5481565b348015610a08575f80fd5b506104d860175481565b348015610a1d575f80fd5b506103ca610a2c36600461314f565b611903565b348015610a3c575f80fd5b506103ca6119ed565b348015610a50575f80fd5b506104d8601c5481565b348015610a65575f80fd5b506103ca610a743660046132b8565b611a56565b348015610a84575f80fd5b506104d8601f5481565b348015610a99575f80fd5b506103ca610aa83660046132a1565b611b19565b6005546001600160a01b03163314610ae05760405162461bcd60e51b8152600401610ad7906132d8565b60405180910390fd5b6012805460ff199081169091556014805490911690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c905f90a1565b606060038054610b2f9061330d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5b9061330d565b8015610ba65780601f10610b7d57610100808354040283529160200191610ba6565b820191905f5260205f20905b815481529060010190602001808311610b8957829003601f168201915b5050505050905090565b5f610bbc338484611d48565b5060015b92915050565b6005546001600160a01b03163314610bf05760405162461bcd60e51b8152600401610ad7906132d8565b60168490556017839055601882905560198190558082610c108587613359565b610c1a9190613359565b610c249190613359565b60155550505050565b6005546001600160a01b03163314610c575760405162461bcd60e51b8152600401610ad7906132d8565b5f5b82811015610cbb578160105f868685818110610c7757610c7761336c565b9050602002016020810190610c8c919061314f565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610c59565b50505050565b5f610ccd848484611e6c565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610d515760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610ad7565b610d5e8533858403611d48565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610bbc918590610d9f908690613359565b611d48565b6005546001600160a01b03163314610dce5760405162461bcd60e51b8152600401610ad7906132d8565b5f601b819055601c819055601d819055601e81905580610dee8180613359565b610df89190613359565b610e029190613359565b601a555f601681905560178190556018819055601981905580610e258180613359565b610e2f9190613359565b610e399190613359565b601555565b6005546001600160a01b03163314610e685760405162461bcd60e51b8152600401610ad7906132d8565b600b54610e7430611149565b1015610eea576040805162461bcd60e51b81526020600482015260248101919091527f43616e206f6e6c792073776170207768656e20746f6b656e20616d6f756e742060448201527f6973206174206f7220686967686572207468616e207265737472696374696f6e6064820152608401610ad7565b600a805460ff60a01b1916600160a01b179055610f05612977565b600a805460ff60a01b191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6005545f906001600160a01b03163314610f735760405162461bcd60e51b8152600401610ad7906132d8565b6001600160a01b038316610fc95760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610ad7565b306001600160a01b038416036110215760405162461bcd60e51b815260206004820152601c60248201527f43616e2774207769746864726177206e617469766520746f6b656e73000000006044820152606401610ad7565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015611065573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110899190613380565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af11580156110d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110fd9190613397565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6001600160a01b03165f9081526020819052604090205490565b6005546001600160a01b0316331461118d5760405162461bcd60e51b8152600401610ad7906132d8565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146112005760405162461bcd60e51b8152600401610ad7906132d8565b601b849055601c839055601d829055601e81905580826112208587613359565b61122a9190613359565b6112349190613359565b601a5550505050565b6005546001600160a01b031633146112675760405162461bcd60e51b8152600401610ad7906132d8565b6001600160a01b0382165f81815260236020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112ef5760405162461bcd60e51b8152600401610ad7906132d8565b6001600160a01b03821615158061130e57506001600160a01b03811615155b6113805760405162461bcd60e51b815260206004820152603760248201527f5f6f7065726174696f6e734164647265737320616e64205f646576416464726560448201527f73732020616464726573732063616e6e6f7420626520300000000000000000006064820152608401610ad7565b600c80546001600160a01b039384166001600160a01b031991821617909155600d8054929093169116179055565b606060048054610b2f9061330d565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561143e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ad7565b61144b3385858403611d48565b5060019392505050565b5f610bbc338484611e6c565b6005546001600160a01b0316331461148b5760405162461bcd60e51b8152600401610ad7906132d8565b61149d81670de0b6b3a76400006133b2565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc9060200160405180910390a150565b6005546001600160a01b031633146115025760405162461bcd60e51b8152600401610ad7906132d8565b600a546001600160a01b03908116908316036115865760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610ad7565b6115908282612ba8565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab905f90a35050565b6005546001600160a01b031633146115f55760405162461bcd60e51b8152600401610ad7906132d8565b601254610100900460ff161561164d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610ad7565b6012805462ffff0019166201010017905543600e81905561166f908290613359565b600f556040517f946f1b1d75e4f01d9bc3b406108e2caf6920518b19e948e4043f9a415bb4cf35905f90a150565b6005546001600160a01b031633146116c75760405162461bcd60e51b8152600401610ad7906132d8565b620186a06116d460025490565b6116df9060016133b2565b6116e991906133c9565b8110156117565760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610ad7565b6103e861176260025490565b61176d9060016133b2565b61177791906133c9565b8111156117e35760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610ad7565b600b55565b6005546001600160a01b031633146118125760405162461bcd60e51b8152600401610ad7906132d8565b8061188557600a546001600160a01b03908116908316036118855760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610ad7565b6001600160a01b03919091165f908152602460205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146118d95760405162461bcd60e51b8152600401610ad7906132d8565b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461192d5760405162461bcd60e51b8152600401610ad7906132d8565b6001600160a01b0381166119925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ad7565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611a175760405162461bcd60e51b8152600401610ad7906132d8565b6040515f90339047908381818185875af1925050503d805f8114610cbb576040519150601f19603f3d011682016040523d82523d5f602084013e610cbb565b6005546001600160a01b03163314611a805760405162461bcd60e51b8152600401610ad7906132d8565b611a9282670de0b6b3a76400006133b2565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de410099060200160405180910390a1611adc81670de0b6b3a76400006133b2565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e906020015b60405180910390a15050565b6005546001600160a01b03163314611b435760405162461bcd60e51b8152600401610ad7906132d8565b678ac7230489e80000811115611bd15760405162461bcd60e51b815260206004820152604760248201527f4d6179206e6f7420627579206d6f7265207468616e2031302045544820696e2060448201527f612073696e676c652062757920746f207265647563652073616e64776963682060648201526661747461636b7360c81b608482015260a401610ad7565b6040805160028082526060820183525f926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611c38573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5c91906133e8565b815f81518110611c6e57611c6e61336c565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611ca257611ca261336c565b6001600160a01b03928316602091820292909201015260095460405163b6f9de9560e01b815291169063b6f9de95908490611ce9905f90869061dead904290600401613446565b5f604051808303818588803b158015611d00575f80fd5b505af1158015611d12573d5f803e3d5ffd5b50505050507fa017c1567cfcdd2d750a8c01e39fe2a846bcebc293c7d078477014d68482056882604051611b0d91815260200190565b6001600160a01b038316611daa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ad7565b6001600160a01b038216611e0b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ad7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316611e925760405162461bcd60e51b8152600401610ad79061347a565b6001600160a01b038216611eb85760405162461bcd60e51b8152600401610ad7906134bf565b5f8111611f075760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610ad7565b601254610100900460ff16611f98576001600160a01b0383165f9081526023602052604090205460ff1680611f5357506001600160a01b0382165f9081526023602052604090205460ff165b611f985760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610ad7565b600f541561206a576001600160a01b0383165f9081526010602052604090205460ff161580611fd457506005546001600160a01b038381169116145b80611fe957506001600160a01b03821661dead145b61206a5760405162461bcd60e51b815260206004820152604660248201527f426f74732063616e6e6f74207472616e7366657220746f6b656e7320696e206f60448201527f72206f75742065786365707420746f206f776e6572206f722064656164206164606482015265323932b9b99760d11b608482015260a401610ad7565b60125460ff161561245c576005546001600160a01b038481169116148015906120a157506005546001600160a01b03838116911614155b80156120b557506001600160a01b03821615155b80156120cc57506001600160a01b03821661dead14155b80156120f057506001600160a01b0383165f9081526023602052604090205460ff16155b801561211457506001600160a01b0382165f9081526023602052604090205460ff16155b1561245c5760145460ff161561222a576009546001600160a01b038381169116148015906121505750600a546001600160a01b03838116911614155b1561222a57612160600243613502565b325f9081526013602052604090205410801561219c5750612182600243613502565b6001600160a01b0383165f90815260136020526040902054105b6122065760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b6064820152608401610ad7565b325f9081526013602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383165f9081526025602052604090205460ff16801561226957506001600160a01b0382165f9081526024602052604090205460ff16155b15612335576006548111156122d15760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610ad7565b6008546122dd83611149565b6122e79083613359565b11156123305760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610ad7565b61245c565b6001600160a01b0382165f9081526025602052604090205460ff16801561237457506001600160a01b0383165f9081526024602052604090205460ff16155b156123de576007548111156123305760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610ad7565b6001600160a01b0382165f9081526024602052604090205460ff1661245c5760085461240983611149565b6124139083613359565b111561245c5760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610ad7565b5f61246630611149565b600b5490915081108015908190612485575060125462010000900460ff165b801561249b5750600a54600160a01b900460ff16155b80156124bf57506001600160a01b0385165f9081526025602052604090205460ff16155b80156124e357506001600160a01b0385165f9081526023602052604090205460ff16155b801561250757506001600160a01b0384165f9081526023602052604090205460ff16155b1561253557600a805460ff60a01b1916600160a01b179055612527612977565b600a805460ff60a01b191690555b6001600160a01b0385165f9081526023602052604090205460019060ff168061257557506001600160a01b0385165f9081526023602052604090205460ff165b1561257d57505f5b5f811561296357600f54431080156125ac57506001600160a01b0387165f9081526025602052604090205460ff165b80156125d057506001600160a01b0386165f9081526025602052604090205460ff16155b80156125dd57505f601554115b15612757576001600160a01b0386165f9081526010602052604090205460ff1661267b576001600160a01b0386165f908152601060205260408120805460ff191660019081179091556011805491929091612639908490613359565b90915550506040516001600160a01b03871681527f55678e47d0a699d3ab99b0184c4ff14f2246ba80522deb921aa0c8823578c44a9060200160405180910390a15b60646126888660636133b2565b61269291906133c9565b9050601554601754826126a591906133b2565b6126af91906133c9565b60205f8282546126bf9190613359565b90915550506015546016546126d490836133b2565b6126de91906133c9565b601f5f8282546126ee9190613359565b909155505060155460185461270390836133b2565b61270d91906133c9565b60215f82825461271d9190613359565b909155505060155460195461273290836133b2565b61273c91906133c9565b60225f82825461274c9190613359565b909155506129459050565b6001600160a01b0386165f9081526025602052604090205460ff16801561277f57505f601a54115b1561283e576064601a548661279491906133b2565b61279e91906133c9565b9050601a54601c54826127b191906133b2565b6127bb91906133c9565b60205f8282546127cb9190613359565b9091555050601a54601b546127e090836133b2565b6127ea91906133c9565b601f5f8282546127fa9190613359565b9091555050601a54601d5461280f90836133b2565b61281991906133c9565b60215f8282546128299190613359565b9091555050601a54601e5461273290836133b2565b6001600160a01b0387165f9081526025602052604090205460ff16801561286657505f601554115b156129455760646015548661287b91906133b2565b61288591906133c9565b90506015546017548261289891906133b2565b6128a291906133c9565b60205f8282546128b29190613359565b90915550506015546016546128c790836133b2565b6128d191906133c9565b601f5f8282546128e19190613359565b90915550506015546018546128f690836133b2565b61290091906133c9565b60215f8282546129109190613359565b909155505060155460195461292590836133b2565b61292f91906133c9565b60225f82825461293f9190613359565b90915550505b801561295657612956873083612bd5565b6129608186613502565b94505b61296e878787612bd5565b50505050505050565b5f602254118015612992575060225461298f30611149565b10155b156129a3576129a330602254612d28565b5f60228190556129b230611149565b90505f602154601f546020546129c89190613359565b6129d29190613359565b90508115806129df575080155b156129e8575050565b600b546129f69060146133b2565b821115612a0e57600b54612a0b9060146133b2565b91505b5f8060028360205486612a2191906133b2565b612a2b91906133c9565b612a3591906133c9565b9050612a49612a448286613502565b612e50565b602054479081905f90612a5e906002906133c9565b612a689087613502565b601f54612a7590856133b2565b612a7f91906133c9565b90505f6002602054612a9191906133c9565b612a9b9088613502565b602154612aa890866133b2565b612ab291906133c9565b9050612abe8183613359565b612ac89084613502565b5f6020819055601f819055602181905560225592508415801590612aeb57505f83115b15612afa57612afa8584612fa0565b600d546040516001600160a01b039091169082905f81818185875af1925050503d805f8114612b44576040519150601f19603f3d011682016040523d82523d5f602084013e612b49565b606091505b5050600c546040519197506001600160a01b03169047905f81818185875af1925050503d805f8114612b96576040519150601f19603f3d011682016040523d82523d5f602084013e612b9b565b606091505b5050505050505050505050565b6001600160a01b0382165f908152602560205260409020805460ff1916821515179055611590828261304f565b6001600160a01b038316612bfb5760405162461bcd60e51b8152600401610ad79061347a565b6001600160a01b038216612c215760405162461bcd60e51b8152600401610ad7906134bf565b6001600160a01b0383165f9081526020819052604090205481811015612c985760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ad7565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290612cce908490613359565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d1a91815260200190565b60405180910390a350505050565b6001600160a01b038216612d885760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610ad7565b6001600160a01b0382165f9081526020819052604090205481811015612dfb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610ad7565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611e5f565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110612e8357612e8361336c565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612eda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612efe91906133e8565b81600181518110612f1157612f1161336c565b6001600160a01b039283166020918202929092010152600954612f379130911684611d48565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790612f6f9085905f90869030904290600401613515565b5f604051808303815f87803b158015612f86575f80fd5b505af1158015612f98573d5f803e3d5ffd5b505050505050565b600954612fb89030906001600160a01b031684611d48565b60095460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015613023573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906130489190613550565b5050505050565b6001600160a01b0382165f81815260246020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd67469101611b0d565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146130f3575f80fd5b50565b5f8060408385031215613107575f80fd5b8235613112816130df565b946020939093013593505050565b5f805f8060808587031215613133575f80fd5b5050823594602084013594506040840135936060013592509050565b5f6020828403121561315f575f80fd5b813561316a816130df565b9392505050565b80151581146130f3575f80fd5b5f805f60408486031215613190575f80fd5b833567ffffffffffffffff8111156131a6575f80fd5b8401601f810186136131b6575f80fd5b803567ffffffffffffffff8111156131cc575f80fd5b8660208260051b84010111156131e0575f80fd5b6020918201945092508401356131f581613171565b809150509250925092565b5f805f60608486031215613212575f80fd5b833561321d816130df565b9250602084013561322d816130df565b929592945050506040919091013590565b5f806040838503121561324f575f80fd5b823561325a816130df565b9150602083013561326a816130df565b809150509250929050565b5f8060408385031215613286575f80fd5b8235613291816130df565b9150602083013561326a81613171565b5f602082840312156132b1575f80fd5b5035919050565b5f80604083850312156132c9575f80fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061332157607f821691505b60208210810361333f57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610bc057610bc0613345565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215613390575f80fd5b5051919050565b5f602082840312156133a7575f80fd5b815161316a81613171565b8082028115828204841417610bc057610bc0613345565b5f826133e357634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156133f8575f80fd5b815161316a816130df565b5f8151808452602084019350602083015f5b8281101561343c5781516001600160a01b0316865260209586019590910190600101613415565b5093949350505050565b848152608060208201525f61345e6080830186613403565b6001600160a01b03949094166040830152506060015292915050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610bc057610bc0613345565b85815284602082015260a060408201525f61353360a0830186613403565b6001600160a01b0394909416606083015250608001529392505050565b5f805f60608486031215613562575f80fd5b505081516020830151604090930151909492935091905056fea2646970667358221220708f4aea6069654ba32a3da1e782981d9b8fe229ef3c325b1681b14e54013a5164736f6c634300081a00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0