6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006b6565b620000439064e8d4a51000620006c7565b600581905562000064906064906200005d90600262000486565b906200051d565b6006556005546200007f906064906200005d90600262000486565b6007556000600c556004600d556000600e556006600f556000601055601054600e54600c54600d54600f54620000b69190620006e1565b620000c29190620006e1565b620000ce9190620006e1565b620000da9190620006e1565b60115560646012819055601381905560148181556015829055601e55601f8190556022805461ffff60a01b1916600160a81b17905560055461271091620001229190620006c7565b6200012e9190620006f7565b6023553480156200013e57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255604080516315ab88c960e31b81529051919263ad5c4648926004808401938290030181865afa158015620001f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021f91906200071a565b600280546001600160a01b0319166001600160a01b03928316179055602080546040805163c45a015560e01b81529051919093169263c45a01559260048083019391928290030181865afa1580156200027c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a291906200071a565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031a91906200071a565b602280546001600160a01b039283166001600160a01b03199182168117835560218054831690911790553060008181526009602090815260408083208254881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673f8e56eb2555232d10de787d929a816f78aa22a1a908117909555865486168117909655601980548616909417909355600354601a8054909516961695909517909255600554838352600885528183208190559051908152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000795565b6000826000036200049a5750600062000517565b6000620004a88385620006c7565b905082620004b78583620006f7565b14620005145760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200051483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200056760201b60201c565b600081836200058b5760405162461bcd60e51b81526004016200050b919062000745565b5060006200059a8486620006f7565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005fa578160001904821115620005de57620005de620005a3565b80851615620005ec57918102915b93841c9390800290620005be565b509250929050565b600082620006135750600162000517565b81620006225750600062000517565b81600181146200063b5760028114620006465762000666565b600191505062000517565b60ff8411156200065a576200065a620005a3565b50506001821b62000517565b5060208310610133831016604e8410600b84101617156200068b575081810a62000517565b620006978383620005b9565b8060001904821115620006ae57620006ae620005a3565b029392505050565b60006200051460ff84168362000602565b8082028115828204841417620005175762000517620005a3565b80820180821115620005175762000517620005a3565b6000826200071557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200072d57600080fd5b81516001600160a01b03811681146200051457600080fd5b600060208083528351808285015260005b81811015620007745785810183015185820160400152820162000756565b506000604082860101526040601f19601f8301168501019250505092915050565b612dc080620007a56000396000f3fe6080604052600436106102ca5760003560e01c8063893d20e811610179578063bc337182116100d6578063d51ed1c81161008a578063f2fde38b11610064578063f2fde38b14610879578063f6a78e1714610899578063f887ea40146108ae57600080fd5b8063d51ed1c8146107e6578063d78e139d14610806578063dd62ed3e1461082657600080fd5b8063cec10c11116100bb578063cec10c1114610791578063cfdbe823146107b1578063d148b74c146107d157600080fd5b8063bc33718214610751578063ccf8c0361461077157600080fd5b80639acb773e1161012d578063a8aa1b3111610112578063a8aa1b31146106d7578063a9059cbb14610704578063b2bdfa7b1461072457600080fd5b80639acb773e146106975780639f11080e146106b757600080fd5b80638da5cb5b1161015e5780638da5cb5b14610606578063918924761461063157806395d89b411461065157600080fd5b8063893d20e8146105a55780638a4068dd146105f157600080fd5b80632b112e4911610227578063715018a6116101db57806378109e54116101c057806378109e54146105595780637bae52e11461056f5780637d1db4a51461058f57600080fd5b8063715018a61461052457806377b54bad1461053957600080fd5b80635d0044ca1161020c5780635d0044ca1461048e5780636ddd1713146104ae57806370a08231146104e157600080fd5b80632b112e491461045d578063313ce5671461047257600080fd5b8063095ea7b31161027e57806318160ddd1161026357806318160ddd146104125780631df4ccfc1461042757806323b872dd1461043d57600080fd5b8063095ea7b3146103d25780631161ae39146103f257600080fd5b80630621472c116102af5780630621472c1461032157806306fdde031461035157806308fd3d05146103a057600080fd5b806304368f65146102d65780630445b667146102f857600080fd5b366102d157005b600080fd5b3480156102e257600080fd5b506102f66102f1366004612918565b6108db565b005b34801561030457600080fd5b5061030e60235481565b6040519081526020015b60405180910390f35b34801561032d57600080fd5b5061034161033c36600461296d565b6109b0565b6040519015158152602001610318565b34801561035d57600080fd5b5060408051808201909152600781527f456e6467616d650000000000000000000000000000000000000000000000000060208201525b6040516103189190612988565b3480156103ac57600080fd5b506022546103419074010000000000000000000000000000000000000000900460ff1681565b3480156103de57600080fd5b506103416103ed3660046129f4565b6109e2565b3480156103fe57600080fd5b5061034161040d366004612a10565b610a5b565b34801561041e57600080fd5b5060055461030e565b34801561043357600080fd5b5061030e60115481565b34801561044957600080fd5b50610341610458366004612a32565b610a6f565b34801561046957600080fd5b5061030e610b7d565b34801561047e57600080fd5b5060405160098152602001610318565b34801561049a57600080fd5b506102f66104a9366004612a6e565b610be9565b3480156104ba57600080fd5b50602254610341907501000000000000000000000000000000000000000000900460ff1681565b3480156104ed57600080fd5b5061030e6104fc36600461296d565b73ffffffffffffffffffffffffffffffffffffffff1660009081526008602052604090205490565b34801561053057600080fd5b506102f6610ca9565b34801561054557600080fd5b506103416105543660046129f4565b610d99565b34801561056557600080fd5b5061030e60075481565b34801561057b57600080fd5b506102f661058a366004612a87565b610ee5565b34801561059b57600080fd5b5061030e60065481565b3480156105b157600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610318565b3480156105fd57600080fd5b506102f6610fea565b34801561061257600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166105cc565b34801561063d57600080fd5b506102f661064c366004612aec565b611035565b34801561065d57600080fd5b5060408051808201909152600781527f454e4447414d45000000000000000000000000000000000000000000000000006020820152610393565b3480156106a357600080fd5b506102f66106b2366004612b2f565b61116c565b3480156106c357600080fd5b506102f66106d2366004612a10565b611243565b3480156106e357600080fd5b506022546105cc9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561071057600080fd5b5061034161071f3660046129f4565b6112cf565b34801561073057600080fd5b506000546105cc9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561075d57600080fd5b506102f661076c366004612a6e565b6112dc565b34801561077d57600080fd5b506102f661078c366004612b2f565b61139c565b34801561079d57600080fd5b506102f66107ac366004612b66565b611486565b3480156107bd57600080fd5b506102f66107cc366004612b66565b611518565b3480156107dd57600080fd5b506102f66115e6565b3480156107f257600080fd5b5061030e610801366004612a6e565b611671565b34801561081257600080fd5b506102f6610821366004612a6e565b6116c5565b34801561083257600080fd5b5061030e610841366004612b92565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260096020908152604080832093909416825291909152205490565b34801561088557600080fd5b506102f661089436600461296d565b611726565b3480156108a557600080fd5b506102f66118d7565b3480156108ba57600080fd5b506020546105cc9073ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b602280549215157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff90931692909217909155602355565b60006109dc827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6109e2565b92915050565b33600081815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a4a9086815260200190565b60405180910390a350600192915050565b600082610a6783611671565b119392505050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526009602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610b6857604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152600982528381203382529091529190912054610b36918490611965565b73ffffffffffffffffffffffffffffffffffffffff851660009081526009602090815260408083203384529091529020555b610b738484846119b9565b90505b9392505050565b60045473ffffffffffffffffffffffffffffffffffffffff16600090815260086020526040812054610be49060035473ffffffffffffffffffffffffffffffffffffffff16600090815260086020526040902054610bde9060055490611e4b565b90611e4b565b905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b6103e8600554610c7a9190612bf4565b6007541015610c8857600080fd5b6103e881600554610c999190612c2f565b610ca39190612bf4565b60075550565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b336000908152600b602052604081205460ff16610db557600080fd5b81600003610e4e576040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8416906370a0823190602401602060405180830381865afa158015610e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4b9190612c46565b91505b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810183905273ffffffffffffffffffffffffffffffffffffffff84169063a9059cbb906044016020604051808303816000875af1158015610ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b769190612c5f565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b601680547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b336000908152600b602052604090205460ff1661100657600080fd5b60405133904780156108fc02916000818181858888f19350505050158015611032573d6000803e3d6000fd5b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146110b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b600c869055600f859055600d849055600e83905560108290556110e7826110e1858188818c8c611e8d565b90611e8d565b60115560128190556110fa600582612bf4565b60115410611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610958565b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146111ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146112c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b601e91909155601f55565b6000610b763384846119b9565b60005473ffffffffffffffffffffffffffffffffffffffff16331461135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b6103e860055461136d9190612bf4565b600654101561137b57600080fd5b6103e88160055461138c9190612c2f565b6113969190612bf4565b60065550565b60005473ffffffffffffffffffffffffffffffffffffffff16331461141d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b73ffffffffffffffffffffffffffffffffffffffff9091166000908152600a6020908152604080832080549415157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009586168117909155600b9092529091208054909216179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611507576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b601391909155601491909155601555565b60005473ffffffffffffffffffffffffffffffffffffffff163314611599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b602280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055601492909255601355601555565b60005473ffffffffffffffffffffffffffffffffffffffff163314611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b61166f611f06565b565b60006109dc61167e610b7d565b60225473ffffffffffffffffffffffffffffffffffffffff166000908152600860205260409020546116bf906116b8906002905b906123ab565b85906123ab565b90612463565b601954479073ffffffffffffffffffffffffffffffffffffffff166108fc60646116ef8585612c2f565b6116f99190612bf4565b6040518115909202916000818181858888f19350505050158015611721573d6000803e3d6000fd5b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b73ffffffffffffffffffffffffffffffffffffffff811661184a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610958565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610958565b6005546007819055600655565b600081848411156119a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109589190612988565b5060006119b08486612c7c565b95945050505050565b60245460009060ff16156119d9576119d28484846124a5565b9050610b76565b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602052604090205460ff16158015611a35575073ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205460ff16155b15611abe5760225474010000000000000000000000000000000000000000900460ff16611abe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f54726164696e67206e6f74206f70656e207965740000000000000000000000006044820152606401610958565b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602052604090205460ff16158015611b0a575073ffffffffffffffffffffffffffffffffffffffff83163014155b8015611b31575060035473ffffffffffffffffffffffffffffffffffffffff848116911614155b8015611b58575060225473ffffffffffffffffffffffffffffffffffffffff848116911614155b8015611b7f5750601a5473ffffffffffffffffffffffffffffffffffffffff848116911614155b8015611ba6575060175473ffffffffffffffffffffffffffffffffffffffff848116911614155b8015611bd8575073ffffffffffffffffffffffffffffffffffffffff83166000908152600b602052604090205460ff16155b15611ca05773ffffffffffffffffffffffffffffffffffffffff8316600090815260086020526040902054600754611c108483612c8f565b1115611c9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610958565b505b611caa84836125bb565b611cb261265b565b15611cbf57611cbf611f06565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff8716600090815260089091529190912054611d27918490611965565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260086020908152604080832093909355600a90529081205460ff1680611d8e575073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205460ff165b611da257611d9d8584866126d0565b611da4565b825b73ffffffffffffffffffffffffffffffffffffffff8516600090815260086020526040902054909150611dd79082611e8d565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e389085815260200190565b60405180910390a3506001949350505050565b6000610b7683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611965565b600080611e9a8385612c8f565b905083811015610b76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610958565b602480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055601e54601f54600091611f4391610a5b565b611f4f57600c54611f52565b60005b90506000611f7660026116bf6011546116bf866023546123ab90919063ffffffff16565b90506000611f8f82602354611e4b90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611fc957611fc9612ca2565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201015260025482519116908290600190811061200757612007612ca2565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152546040517f791ac9470000000000000000000000000000000000000000000000000000000081524792919091169063791ac94790612079908690600090879030904290600401612cd1565b600060405180830381600087803b15801561209357600080fd5b505af11580156120a7573d6000803e3d6000fd5b5050505060006120c08247611e4b90919063ffffffff16565b905060006120db6120d2886002612463565b60115490611e4b565b905060006120f060026116bf8481878d6123ab565b9050600061210d836116bf600d54876123ab90919063ffffffff16565b9050600061212a846116bf600f54886123ab90919063ffffffff16565b90506000612147856116bf600e54896123ab90919063ffffffff16565b60175460405191925060009173ffffffffffffffffffffffffffffffffffffffff9091169085908381818185875af1925050503d80600081146121a6576040519150601f19603f3d011682016040523d82523d6000602084013e6121ab565b606091505b505060185460405191925073ffffffffffffffffffffffffffffffffffffffff16908390600081818185875af1925050503d8060008114612208576040519150601f19603f3d011682016040523d82523d6000602084013e61220d565b606091505b505060195460405191925073ffffffffffffffffffffffffffffffffffffffff16908490600081818185875af1925050503d806000811461226a576040519150601f19603f3d011682016040523d82523d6000602084013e61226f565b606091505b5060009250508b159050612375576020546016546040517ff305d719000000000000000000000000000000000000000000000000000000008152306004820152602481018e9052600060448201819052606482015273ffffffffffffffffffffffffffffffffffffffff91821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015612313573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123389190612d5c565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050505050505050565b6000826000036123bd575060006109dc565b60006123c98385612c2f565b9050826123d68583612bf4565b14610b76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610958565b6000610b7683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128c2565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff8616600090815260089091529182205461250c918490611965565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526008602052604080822093909355908516815220546125489083611e8d565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125a99086815260200190565b60405180910390a35060019392505050565b600654811115806125f1575073ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604090205460ff165b612657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5458204c696d69742045786365656465640000000000000000000000000000006044820152606401610958565b5050565b60225460009073ffffffffffffffffffffffffffffffffffffffff163314801590612689575060245460ff16155b80156126b057506022547501000000000000000000000000000000000000000000900460ff165b8015610be457505060235430600090815260086020526040902054101590565b6015546022546000919073ffffffffffffffffffffffffffffffffffffffff90811690841603612703575060135461272b565b60225473ffffffffffffffffffffffffffffffffffffffff9081169086160361272b57506014545b6000612758601254606461273f9190612c2f565b6116bf846116b26011548a6123ab90919063ffffffff16565b905060006127776011546116bf601054856123ab90919063ffffffff16565b905060006127858383611e4b565b306000908152600860205260409020549091506127a29082611e8d565b3060009081526008602052604080822092909255601a5473ffffffffffffffffffffffffffffffffffffffff16815220546127dd9083611e8d565b601a5473ffffffffffffffffffffffffffffffffffffffff90811660009081526008602090815260409182902093909355518381523092918b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a381156128ac576005546128569083611e4b565b60055560045460405183815273ffffffffffffffffffffffffffffffffffffffff918216918a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6128b68784611e4b565b98975050505050505050565b600081836128fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109589190612988565b5060006119b08486612bf4565b801515811461103257600080fd5b6000806040838503121561292b57600080fd5b82356129368161290a565b946020939093013593505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461296857600080fd5b919050565b60006020828403121561297f57600080fd5b610b7682612944565b600060208083528351808285015260005b818110156129b557858101830151858201604001528201612999565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b60008060408385031215612a0757600080fd5b61293683612944565b60008060408385031215612a2357600080fd5b50508035926020909101359150565b600080600060608486031215612a4757600080fd5b612a5084612944565b9250612a5e60208501612944565b9150604084013590509250925092565b600060208284031215612a8057600080fd5b5035919050565b600080600080600060a08688031215612a9f57600080fd5b612aa886612944565b9450612ab660208701612944565b9350612ac460408701612944565b9250612ad260608701612944565b9150612ae060808701612944565b90509295509295909350565b60008060008060008060c08789031215612b0557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215612b4257600080fd5b612b4b83612944565b91506020830135612b5b8161290a565b809150509250929050565b600080600060608486031215612b7b57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612ba557600080fd5b612bae83612944565b9150612bbc60208401612944565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082612c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820281158282048414176109dc576109dc612bc5565b600060208284031215612c5857600080fd5b5051919050565b600060208284031215612c7157600080fd5b8151610b768161290a565b818103818111156109dc576109dc612bc5565b808201808211156109dc576109dc612bc5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612d2e57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101612cfc565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b600080600060608486031215612d7157600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122029dda18ab65335dda4fe02ec76e431be009015568e6a9c8e83be3879587da1c164736f6c63430008150033