6080604052600880546001600160a01b031990811673eed90f34ed424fa08fc5b56e184bd52a7289b9351790915560098054821673bb219ab0299181b30286c17e3780369b600a389e178155600a8054909216733b017264d7c732c03a4e84228d57cf3f0d1e733c17909155670de0b6b3a7640000600b556001601655600560175560185560076019556015601a55601b805460ff1916905567016345785d8a0000601c55348015620000b157600080fd5b506040518060400160405280600a8152602001694f6d6e6961566572736560b01b815250604051806040016040528060058152602001644f4d4e494160d81b81525060086000620001076200049560201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350825162000166906004906020860190620007f0565b5081516200017c906005906020850190620007f0565b506006805460ff191660ff929092169190911781556003600c819055601091909155600d8190556004600e556005601255620001c8925090508062000499602090811b620023f117901c565b600f8190555062000207600e54620001f36012546010546200049960201b620023f11790919060201c565b6200049960201b620023f11790919060201c565b601355600060148190556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a015591600480820192602092909190829003018186803b1580156200026157600080fd5b505afa15801562000276573d6000803e3d6000fd5b505050506040513d60208110156200028d57600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929187169163ad5c464891600480820192602092909190829003018186803b158015620002de57600080fd5b505afa158015620002f3573d6000803e3d6000fd5b505050506040513d60208110156200030a57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156200035d57600080fd5b505af115801562000372573d6000803e3d6000fd5b505050506040513d60208110156200038957600080fd5b505160068054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600780546001600160a01b0319168284161790819055919250620003da91166001620004fb565b600954620003f3906001600160a01b03166001620005af565b600a546200040c906001600160a01b03166001620005af565b60085462000425906001600160a01b03166001620005af565b62000432306001620005af565b6200044862000440620006dc565b6001620005af565b6001600160a01b0381166000908152601e60205260409020805460ff191660011790556200048862000479620006dc565b67016345785d8a0000620006eb565b505060016020556200088c565b3390565b600082820183811015620004f4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166000908152601f602052604090205460ff16151581151514156200055b5760405162461bcd60e51b8152600401808060200182810382526038815260200180620041006038913960400191505060405180910390fd5b6001600160a01b0382166000818152601f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b620005b962000495565b6000546001600160a01b039081169116146200061c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0382166000908152601d602052604090205460ff16151581151514156200067c5760405162461bcd60e51b815260040180806020018281038252602a81526020018062004138602a913960400191505060405180910390fd5b6001600160a01b0382166000818152601d6020908152604091829020805460ff1916851515908117909155825190815291517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79281900390910190a25050565b6000546001600160a01b031690565b6001600160a01b03821662000747576040805162461bcd60e51b815260206004820152601f60248201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b62000763816003546200049960201b620023f11790919060201c565b6003556001600160a01b03821660009081526001602090815260409091205462000798918390620023f162000499821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200083357805160ff191683800117855562000863565b8280016001018555821562000863579182015b828111156200086357825182559160200191906001019062000846565b506200087192915062000875565b5090565b5b8082111562000871576000815560010162000876565b613864806200089c6000396000f3fe6080604052600436106103855760003560e01c80638768a9cd116101d1578063ae5988d111610102578063cef70795116100a0578063dd62ed3e1161006f578063dd62ed3e14610c02578063e37ba8f914610c3d578063f2fde38b14610c70578063fbf6eaa514610ca35761038c565b8063cef7079514610b75578063d469801614610ba8578063da21bcbc14610bbd578063db02c95514610bed5761038c565b8063c0246668116100dc578063c024666814610a52578063c13b3def14610a8d578063c492f04614610ac0578063cb61b42d14610b3f5761038c565b8063ae5988d1146109f5578063b24db8f814610a0a578063b62496f514610a1f5761038c565b80639a7a23d61161016f578063a254b41e11610149578063a254b41e1461091e578063a457c2d714610948578063a4de3c1914610981578063a9059cbb146109bc5761038c565b80639a7a23d6146108b95780639c4afbbd146108f4578063a1486ed9146109095761038c565b80638da5cb5b116101ab5780638da5cb5b14610865578063923467191461087a5780639372881b1461088f57806395d89b41146108a45761038c565b80638768a9cd14610808578063893d20e81461083b5780638c0b5e22146108505761038c565b8063423ce9cc116102b65780636256d1811161025457806370a082311161022357806370a0823114610796578063715018a6146107c9578063766ea415146107de5780637b3c83b1146107f35761038c565b80636256d18114610716578063664a1ad61461074057806368b4cac9146107555780636a54e445146107815761038c565b80634fbee193116102905780634fbee1931461066b57806351d187021461069e57806357e871e7146106ce5780635ec38bec146106e35761038c565b8063423ce9cc1461061757806342659d971461062c57806342966c68146106415761038c565b806318160ddd116103235780632ce86fbf116102fd5780632ce86fbf14610589578063313ce5671461059e57806339509351146105c95780633a98ef39146106025761038c565b806318160ddd1461051c57806323058e1e1461053157806323b872dd146105465761038c565b80630943ff181161035f5780630943ff1814610474578063095ea7b3146104895780630d9dd4dc146104d657806315291cd4146105075761038c565b80630664fd921461039157806306fdde03146103c3578063087ed9721461044d5761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103c1600480360360408110156103b457600080fd5b5080359060200135610cb8565b005b3480156103cf57600080fd5b506103d8610e09565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104125781810151838201526020016103fa565b50505050905090810190601f16801561043f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045957600080fd5b50610462610e9f565b60408051918252519081900360200190f35b34801561048057600080fd5b50610462610ea5565b34801561049557600080fd5b506104c2600480360360408110156104ac57600080fd5b506001600160a01b038135169060200135610eab565b604080519115158252519081900360200190f35b3480156104e257600080fd5b506104eb610ec9565b604080516001600160a01b039092168252519081900360200190f35b34801561051357600080fd5b50610462610ed8565b34801561052857600080fd5b50610462610ede565b34801561053d57600080fd5b506104eb610ee4565b34801561055257600080fd5b506104c26004803603606081101561056957600080fd5b506001600160a01b03813581169160208101359091169060400135610ef8565b34801561059557600080fd5b50610462610f7f565b3480156105aa57600080fd5b506105b3610f85565b6040805160ff9092168252519081900360200190f35b3480156105d557600080fd5b506104c2600480360360408110156105ec57600080fd5b506001600160a01b038135169060200135610f8e565b34801561060e57600080fd5b50610462610fdc565b34801561062357600080fd5b506104c2610fe2565b34801561063857600080fd5b50610462610feb565b34801561064d57600080fd5b506104c26004803603602081101561066457600080fd5b5035610ff1565b34801561067757600080fd5b506104c26004803603602081101561068e57600080fd5b50356001600160a01b031661100c565b3480156106aa57600080fd5b506103c1600480360360408110156106c157600080fd5b508035906020013561102a565b3480156106da57600080fd5b50610462611167565b3480156106ef57600080fd5b506103c16004803603602081101561070657600080fd5b50356001600160a01b031661116d565b34801561072257600080fd5b506103c16004803603602081101561073957600080fd5b5035611283565b34801561074c57600080fd5b506104eb611316565b34801561076157600080fd5b506103c16004803603602081101561077857600080fd5b50351515611325565b34801561078d57600080fd5b506104626113c4565b3480156107a257600080fd5b50610462600480360360208110156107b957600080fd5b50356001600160a01b03166113ca565b3480156107d557600080fd5b506103c16113e5565b3480156107ea57600080fd5b50610462611487565b3480156107ff57600080fd5b5061046261148d565b34801561081457600080fd5b506104c26004803603602081101561082b57600080fd5b50356001600160a01b0316611493565b34801561084757600080fd5b506104eb6114a8565b34801561085c57600080fd5b506104626114b7565b34801561087157600080fd5b506104eb6114bd565b34801561088657600080fd5b506104626114cc565b34801561089b57600080fd5b506104626114d2565b3480156108b057600080fd5b506103d86114d8565b3480156108c557600080fd5b506103c1600480360360408110156108dc57600080fd5b506001600160a01b0381351690602001351515611539565b34801561090057600080fd5b5061046261159f565b34801561091557600080fd5b506104626115a5565b34801561092a57600080fd5b506103c16004803603602081101561094157600080fd5b50356115ab565b34801561095457600080fd5b506104c26004803603604081101561096b57600080fd5b506001600160a01b03813516906020013561163e565b34801561098d57600080fd5b506103c1600480360360408110156109a457600080fd5b506001600160a01b03813516906020013515156116a6565b3480156109c857600080fd5b506104c2600480360360408110156109df57600080fd5b506001600160a01b0381351690602001356117bc565b348015610a0157600080fd5b506104eb6117d0565b348015610a1657600080fd5b506104626117df565b348015610a2b57600080fd5b506104c260048036036020811015610a4257600080fd5b50356001600160a01b03166117e5565b348015610a5e57600080fd5b506103c160048036036040811015610a7557600080fd5b506001600160a01b03813516906020013515156117fa565b348015610a9957600080fd5b506103c160048036036020811015610ab057600080fd5b50356001600160a01b0316611910565b348015610acc57600080fd5b506103c160048036036040811015610ae357600080fd5b810190602081018135640100000000811115610afe57600080fd5b820183602082011115610b1057600080fd5b80359060200191846020830284011164010000000083111715610b3257600080fd5b9193509150351515611a34565b348015610b4b57600080fd5b506103c160048036036060811015610b6257600080fd5b5080359060208101359060400135611b54565b348015610b8157600080fd5b506103c160048036036020811015610b9857600080fd5b50356001600160a01b0316611c11565b348015610bb457600080fd5b506104eb61206b565b348015610bc957600080fd5b506103c160048036036040811015610be057600080fd5b508035906020013561207a565b348015610bf957600080fd5b506104626121bd565b348015610c0e57600080fd5b5061046260048036036040811015610c2557600080fd5b506001600160a01b03813581169160200135166121c3565b348015610c4957600080fd5b506103c160048036036020811015610c6057600080fd5b50356001600160a01b03166121ee565b348015610c7c57600080fd5b506103c160048036036020811015610c9357600080fd5b50356001600160a01b03166122fb565b348015610caf57600080fd5b506103c161235f565b610cc0612452565b6000546001600160a01b03908116911614610d10576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b600a8211158015610d225750600a8111155b610d73576040805162461bcd60e51b815260206004820152601760248201527f496e76616c6964206465766d61726b6574696e67466565000000000000000000604482015290519081900360640190fd5b600c8290556010819055601654600d54601154610d9e9291610d9891829087906123f1565b906123f1565b600f81905550610dc7601654610d98600e54610d986012546010546123f190919063ffffffff16565b601355604080518381526020810183905281517fcd545670799e0a627eebb91afce3bbbb9a91b706c87df4806f881feedd6a251d929181900390910190a15050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e955780601f10610e6a57610100808354040283529160200191610e95565b820191906000526020600020905b815481529060010190602001808311610e7857829003601f168201915b5050505050905090565b60135481565b600e5481565b6000610ebf610eb8612452565b8484612456565b5060015b92915050565b6009546001600160a01b031681565b60175481565b60035490565b60065461010090046001600160a01b031681565b6000610f05848484612542565b610f7584610f11612452565b610f708560405180606001604052806028815260200161361d602891396001600160a01b038a16600090815260026020526040812090610f4f612452565b6001600160a01b03168152602081019190915260400160002054919061290d565b612456565b5060019392505050565b60125481565b60065460ff1690565b6000610ebf610f9b612452565b84610f708560026000610fac612452565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906123f1565b601a5481565b601b5460ff1681565b600c5481565b6000611004610ffe612452565b836129a4565b506001919050565b6001600160a01b03166000908152601d602052604090205460ff1690565b611032612452565b6000546001600160a01b03908116911614611082576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b600a82111580156110945750600a8111155b6110d7576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c69642066756e6446656560881b604482015290519081900360640190fd5b600d829055600e819055601654601154600c546110fc9291610d9891829087906123f1565b600f81905550611125601654610d98601254610d98601054600e546123f190919063ffffffff16565b601355604080518381526020810183905281517fbbcd6b21997501bf83667e3091642098078677a289fe5fb67bc04ab5891d91e5929181900390910190a15050565b60145481565b611175612452565b6000546001600160a01b039081169116146111c5576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b600a546001600160a01b03828116911614156112125760405162461bcd60e51b81526004018080602001828103825260278152602001806136456027913960400191505060405180910390fd5b61121d8160016117fa565b600a54611234906001600160a01b031660006117fa565b600a80546001600160a01b0319166001600160a01b03838116918217928390556040519216917fe36ddb6034b180af46efdc6e96b3fe6b918ff6e3761aabcff2e3299823e797e590600090a350565b61128b612452565b6000546001600160a01b039081169116146112db576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b601c8190556040805182815290517faa3699eefc959af0349072633ce13d21ce9c6fe475e5818b99da990ee39645a19181900360200190a150565b600a546001600160a01b031681565b61132d612452565b6000546001600160a01b0390811691161461137d576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b601b805482151560ff19909116811790915560408051918252517f701507a13d5701687328d70ea5a717a33a062f46c229a785b315fb4517fef0699181900360200190a150565b60165481565b6001600160a01b031660009081526001602052604090205490565b6113ed612452565b6000546001600160a01b0390811691161461143d576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600f5481565b60115481565b601e6020526000908152604090205460ff1681565b60006114b26114bd565b905090565b601c5481565b6000546001600160a01b031690565b600d5481565b60105481565b60058054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e955780601f10610e6a57610100808354040283529160200191610e95565b611541612452565b6000546001600160a01b03908116911614611591576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b61159b8282612a94565b5050565b600b5481565b60155481565b6115b3612452565b6000546001600160a01b03908116911614611603576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b600b8190556040805182815290517f7c57306552f9ca1d69c9c779932ef43e8bc6f04d7718d9e1fbf6a877013ececd9181900360200190a150565b6000610ebf61164b612452565b84610f708560405180606001604052806025815260200161374c6025913960026000611675612452565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061290d565b6116ae612452565b6000546001600160a01b039081169116146116fe576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b6001600160a01b0382166000908152601e602052604090205460ff161515811515141561175c5760405162461bcd60e51b815260040180806020018281038252602a81526020018061366c602a913960400191505060405180910390fd5b6001600160a01b0382166000818152601e6020908152604091829020805460ff1916851515908117909155825190815291517fd3d1fab5db42ae85293059c69e12bf01ffffb1dd5ff4caa5e5568f99fc387f249281900390910190a25050565b6000610ebf6117c9612452565b8484612542565b6007546001600160a01b031681565b60185481565b601f6020526000908152604090205460ff1681565b611802612452565b6000546001600160a01b03908116911614611852576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b6001600160a01b0382166000908152601d602052604090205460ff16151581151514156118b05760405162461bcd60e51b815260040180806020018281038252602a815260200180613792602a913960400191505060405180910390fd5b6001600160a01b0382166000818152601d6020908152604091829020805460ff1916851515908117909155825190815291517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79281900390910190a25050565b611918612452565b6000546001600160a01b03908116911614611968576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b6009546001600160a01b03828116911614156119b55760405162461bcd60e51b815260040180806020018281038252602f8152602001806137de602f913960400191505060405180910390fd5b6119c08160016117fa565b6009546119d7906001600160a01b031660006117fa565b6009546040516001600160a01b03918216918316907fbff926882094c380d5379f3e72d6d8391654afd5bc68e2a3c4a12f38ad379ac390600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b611a3c612452565b6000546001600160a01b03908116911614611a8c576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b60005b82811015611ae15781601d6000868685818110611aa857fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611a8f565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b35838383604051808060200183151581526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b611b5c612452565b6000546001600160a01b03908116911614611bac576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b601783905560188290556019819055611bc981610d9885856123f1565b601a55604080518481526020810184905280820183905290517fcc891d40504d5b798e9edf203f13fad7a7e3db2585689577e22c7529a474fc099181900360600190a1505050565b611c19612452565b6000546001600160a01b03908116911614611c69576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b6006546001600160a01b03828116610100909204161415611cbb5760405162461bcd60e51b81526004018080602001828103825260238152602001806135fa6023913960400191505060405180910390fd5b6006546040516001600160a01b036101009092048216918316907f0807b5b1d0f1a9b369ecf33bc393cc8bf6b2a3e3e46a9f28d08a900343f41ebe90600090a380600660016101000a8154816001600160a01b0302191690836001600160a01b031602179055506000600660019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611d7257600080fd5b505afa158015611d86573d6000803e3d6000fd5b505050506040513d6020811015611d9c57600080fd5b5051600654604080516315ab88c960e31b815290516001600160a01b039384169363e6a439059330936101009091049091169163ad5c464891600480820192602092909190829003018186803b158015611df557600080fd5b505afa158015611e09573d6000803e3d6000fd5b505050506040513d6020811015611e1f57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152516044808301926020929190829003018186803b158015611e6f57600080fd5b505afa158015611e83573d6000803e3d6000fd5b505050506040513d6020811015611e9957600080fd5b505190506001600160a01b03811661202757600660019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef957600080fd5b505afa158015611f0d573d6000803e3d6000fd5b505050506040513d6020811015611f2357600080fd5b5051600654604080516315ab88c960e31b815290516001600160a01b039384169363c9c653969330936101009091049091169163ad5c464891600480820192602092909190829003018186803b158015611f7c57600080fd5b505afa158015611f90573d6000803e3d6000fd5b505050506040513d6020811015611fa657600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015611ff857600080fd5b505af115801561200c573d6000803e3d6000fd5b505050506040513d602081101561202257600080fd5b505190505b60075461203e906001600160a01b03166000612a94565b600780546001600160a01b0319166001600160a01b03838116919091179182905561159b91166001612a94565b6008546001600160a01b031681565b612082612452565b6000546001600160a01b039081169116146120d2576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b600a82111580156120e45750600a8111155b61212d576040805162461bcd60e51b8152602060048201526015602482015274496e76616c6964204c69717569646974792046656560581b604482015290519081900360640190fd5b60118290556012819055601654600d54600c546121529291610d9891829087906123f1565b600f8190555061217b601654610d98600e54610d986010546012546123f190919063ffffffff16565b601355604080518381526020810183905281517fdcabb673b8004b29667370cf7e48059178985da4fa97105c1532cdfb5bbc5c0d929181900390910190a15050565b60195481565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6121f6612452565b6000546001600160a01b03908116911614612246576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b6008546001600160a01b03828116911614156122935760405162461bcd60e51b815260040180806020018281038252602c8152602001806136d7602c913960400191505060405180910390fd5b61229e8160016117fa565b6008546040516001600160a01b03918216918316907f6080503d1da552ae8eb4b7b8a20245d9fabed014180510e7d1a05ea08fdb0f3e90600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b612303612452565b6000546001600160a01b03908116911614612353576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b61235c81612b46565b50565b612367612452565b6000546001600160a01b039081169116146123b7576040805162461bcd60e51b815260206004820181905260248201526000805160206136b7833981519152604482015290519081900360640190fd5b43601481905560408051918252517f27f2628255d76b9078e3983ef55b01e83266647391bef5f60c83b70e9d4002e19181900360200190a1565b60008282018381101561244b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6001600160a01b03831661249b5760405162461bcd60e51b81526004018080602001828103825260248152602001806135516024913960400191505060405180910390fd5b6001600160a01b0382166124e05760405162461bcd60e51b815260040180806020018281038252602281526020018061380d6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166125875760405162461bcd60e51b815260040180806020018281038252602581526020018061352c6025913960400191505060405180910390fd5b6001600160a01b0382166125cc5760405162461bcd60e51b81526004018080602001828103825260238152602001806137296023913960400191505060405180910390fd5b601c5481111561261c576040805162461bcd60e51b81526020600482015260166024820152756d61782d74782d616d6f756e742d6f766572666c6f7760501b604482015290519081900360640190fd5b806126325761262d83836000612be6565b612908565b601b5460ff16156126cf576000612648306113ca565b90506000612654612d38565b905080821080159081906126725750600754600160a01b900460ff16155b801561269757506001600160a01b0386166000908152601f602052604090205460ff16155b156126cb576007805460ff60a01b1916600160a01b17905590915081906126bd82612fa6565b6007805460ff60a01b191690555b5050505b6001600160a01b0382166000908152601e602052604090205460ff1680156126f75750601454155b1561270157436014555b6001600160a01b0383166000908152601d602052604090205460019060ff168061274357506001600160a01b0383166000908152601d602052604090205460ff165b1561274c575060005b80156128fb57600a6014544303116127b45760008261276a856113ca565b0190506516bcc41e90008111156127b25760405162461bcd60e51b81526004018080602001828103825260278152602001806135d36027913960400191505060405180910390fd5b505b6001600160a01b0384166000908152601e602052604081205460ff16806127f357506001600160a01b0384166000908152601e602052604090205460ff165b156128f957600a60145443031161282c5761281a60646128148560636130d0565b90613129565b9050612827853083612be6565b6128ec565b6001600160a01b0385166000908152601e602052604090205460ff16156128a3576128676064612814600f54866130d090919063ffffffff16565b9050612874853083612be6565b61289b612892600f54612814601654856130d090919063ffffffff16565b601554906123f1565b6015556128ec565b6128bd6064612814601354866130d090919063ffffffff16565b90506128ca853083612be6565b6128e8612892601354612814601654856130d090919063ffffffff16565b6015555b6128f6838261316b565b92505b505b612906848484612be6565b505b505050565b6000818484111561299c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612961578181015183820152602001612949565b50505050905090810190601f16801561298e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0382166129e95760405162461bcd60e51b81526004018080602001828103825260218152602001806137716021913960400191505060405180910390fd5b612a26816040518060600160405280602281526020016137bc602291396001600160a01b038516600090815260016020526040902054919061290d565b6001600160a01b038316600090815260016020526040902055600354612a4c908261316b565b6003556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b0382166000908152601f602052604090205460ff1615158115151415612af25760405162461bcd60e51b815260040180806020018281038252603881526020018061359b6038913960400191505060405180910390fd5b6001600160a01b0382166000818152601f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038116612b8b5760405162461bcd60e51b81526004018080602001828103825260268152602001806135756026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316612c2b5760405162461bcd60e51b815260040180806020018281038252602581526020018061352c6025913960400191505060405180910390fd5b6001600160a01b038216612c705760405162461bcd60e51b81526004018080602001828103825260238152602001806137296023913960400191505060405180910390fd5b612cad81604051806060016040528060268152602001613703602691396001600160a01b038616600090815260016020526040902054919061290d565b6001600160a01b038085166000908152600160205260408082209390935590841681522054612cdc90826123f1565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b604080516002808252606080830184526000938493919290602083019080368337019050509050600660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612dad57600080fd5b505afa158015612dc1573d6000803e3d6000fd5b505050506040513d6020811015612dd757600080fd5b505181518290600090612de657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612e1457fe5b6001600160a01b03928316602091820292909201810191909152600654600b546040805163d06ca61f60e01b815260048101838152602482019283528751604483015287516060976101009096049095169563d06ca61f958994929360640191858101910280838360005b83811015612e97578181015183820152602001612e7f565b50505050905001935050505060006040518083038186803b158015612ebb57600080fd5b505afa158015612ecf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612ef857600080fd5b8101908080516040519392919084640100000000821115612f1857600080fd5b908301906020820185811115612f2d57600080fd5b8251866020820283011164010000000082111715612f4a57600080fd5b82525081516020918201928201910280838360005b83811015612f77578181015183820152602001612f5f565b50505050905001604052505050905080600181518110612f9357fe5b6020026020010151925082935050505090565b6000612fc2612fb4306113ca565b6015546128149085906130d0565b90506000612fe1601a54612814601754866130d090919063ffffffff16565b90506000612fef848361316b565b9050612ffa816131ad565b47600061300b8361281484886130d0565b9050613017828261316b565b91506000613026826002613129565b9050613032828261316b565b601554909250613042908761316b565b601555601a5460175460009161305d916128149087906130d0565b9050600061307c601a54612814601954886130d090919063ffffffff16565b905060006130948261308e888661316b565b9061316b565b905087156130a6576130a68884613391565b81156130b5576130b582613452565b80156130c4576130c48161348c565b50505050505050505050565b6000826130df57506000610ec3565b828202828482816130ec57fe5b041461244b5760405162461bcd60e51b81526004018080602001828103825260218152602001806136966021913960400191505060405180910390fd5b600061244b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506134c6565b600061244b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061290d565b604080516002808252606080830184529260208301908036833701905050905030816000815181106131db57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561324957600080fd5b505afa15801561325d573d6000803e3d6000fd5b505050506040513d602081101561327357600080fd5b505181518290600190811061328457fe5b6001600160a01b0392831660209182029290920101526006546132af91309161010090041684612456565b600660019054906101000a90046001600160a01b03166001600160a01b031663791ac9478360008430426078016040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561334c578181015183820152602001613334565b505050509050019650505050505050600060405180830381600087803b15801561337557600080fd5b505af1158015613389573d6000803e3d6000fd5b505050505050565b6006546133ae90309061010090046001600160a01b031684612456565b6006546008546040805163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0392831660848201524260a482015290516101009093049091169163f305d71991849160c480830192606092919082900301818588803b15801561342757600080fd5b505af115801561343b573d6000803e3d6000fd5b50505050506040513d606081101561290657600080fd5b600a546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561159b573d6000803e3d6000fd5b6009546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561159b573d6000803e3d6000fd5b600081836135155760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612961578181015183820152602001612949565b50600083858161352157fe5b049594505050505056fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734175746f6d61746564206d61726b6574206d616b6572207061697220697320616c72656164792073657420746f20746861742076616c75654f776e656420616d6f756e74206578636565647320746865206d61784f776e6564416d6f756e7454686520726f7574657220616c7265616479206861732074686174206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655468652066756e642077616c6c657420697320616c7265616479207468697320616464726573734163636f756e7420697320616c7265616479207468652076616c7565206f662027697347657446656527536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572546865206c69717569646974792057616c6c657420697320616c72656164792074686973206164647265737342455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206275726e2066726f6d20746865207a65726f20616464726573734163636f756e7420697320616c7265616479207468652076616c7565206f6620276578636c756465642742455032303a206275726e20616d6f756e7420657863656564732062616c616e6365546865206465766d61726b6574696e672077616c6c657420697320616c72656164792074686973206164647265737342455032303a20617070726f766520746f20746865207a65726f2061646472657373a264697066735822122010c39829f4f158ab38ff915ab9123bc2910e45c0be883622462ad5e84031ca7264736f6c634300060c00334175746f6d61746564206d61726b6574206d616b6572207061697220697320616c72656164792073657420746f20746861742076616c75654163636f756e7420697320616c7265616479207468652076616c7565206f6620276578636c7564656427