Special data
- Nonce: 1
- Is contract? Yes
-
Contract code:
0x6080604052600436106102f15760003560e01c806379ba50971161018f578063a270d4a4116100e1578063ddca3f431161008a578063f2fde38b11610064578063f2fde38b146109f6578063feb5657314610a16578063ff5c868014610a3657600080fd5b8063ddca3f4314610959578063e99c43e31461096f578063ef66ba58146109be57600080fd5b8063ca15c873116100bb578063ca15c873146108f9578063d547741f14610919578063dbd38c591461093957600080fd5b8063a270d4a414610899578063acfdbac0146108b9578063b39ffe6c146108d957600080fd5b80638ea9811711610143578063934131ed1161011d578063934131ed146108445780639eccacf614610864578063a217fddf1461088457600080fd5b80638ea98117146107c05780639010d07c146107e057806391d148541461080057600080fd5b806388d8b2a71161017457806388d8b2a71461074e5780638c422c271461076e5780638da5cb5b1461078e57600080fd5b806379ba5097146107195780638223b9481461072e57600080fd5b806329676e5c1161024857806336568abe116101fc578063587f5ed7116101d6578063587f5ed7146106c3578063694049f0146106d957806369fe0e2d146106f957600080fd5b806336568abe1461066357806342f1054e1461068357806343bc6f3e146106a357600080fd5b806331b412d71161022d57806331b412d7146105d5578063338c99f11461060257806333f44eda1461063657600080fd5b806329676e5c146105775780632f2ff15d146105b557600080fd5b8063164e68de116102aa578063241de80811610284578063241de808146104fa578063248a9ca31461051a57806327368e731461054a57600080fd5b8063164e68de14610472578063165df94c146104925780631fe543e3146104da57600080fd5b8063086e4bfd116102db578063086e4bfd146104145780630a8894c41461043d57806313520c8b1461045f57600080fd5b8062b255b0146102f657806301ffc9a7146103e4575b600080fd5b34801561030257600080fd5b5061038f610311366004614dda565b600760205260009081526040902080546001820154600283015460038401546004909401546001600160a01b03938416949383169363ffffffff74010000000000000000000000000000000000000000850481169478010000000000000000000000000000000000000000000000009004169264ffffffffff169187565b604080516001600160a01b03988916815297909616602088015263ffffffff9485169587019590955292909116606085015264ffffffffff16608084015260a083015260c082015260e0015b60405180910390f35b3480156103f057600080fd5b506104046103ff366004614df5565b610a80565b60405190151581526020016103db565b34801561042057600080fd5b5060085467ffffffffffffffff165b6040519081526020016103db565b34801561044957600080fd5b5061045d610458366004614e5e565b610adc565b005b61045d61046d366004615149565b610d2d565b34801561047e57600080fd5b5061045d61048d366004615222565b611878565b34801561049e57600080fd5b506104b26104ad36600461523f565b611936565b604080516001600160a01b03909416845261ffff9092166020840152908201526060016103db565b3480156104e657600080fd5b5061045d6104f5366004615269565b611998565b34801561050657600080fd5b5061045d6105153660046152b5565b611a07565b34801561052657600080fd5b5061042f610535366004615306565b60009081526020819052604090206001015490565b34801561055657600080fd5b5061056a610565366004614dda565b611b9f565b6040516103db919061531f565b34801561058357600080fd5b506008546105a09068010000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016103db565b3480156105c157600080fd5b5061045d6105d036600461536c565b611c19565b3480156105e157600080fd5b506008546105a0906c01000000000000000000000000900463ffffffff1681565b34801561060e57600080fd5b5061042f7f165b4e4bdd6508f05266283fa4bd4fd5ebb938a5f16867c98d3e5cbad8ff56eb81565b34801561064257600080fd5b50610656610651366004614dda565b611c3e565b6040516103db919061539c565b34801561066f57600080fd5b5061045d61067e36600461536c565b611cad565b34801561068f57600080fd5b5061045d61069e3660046153e2565b611d39565b3480156106af57600080fd5b5061045d6106be366004614dda565b611ef6565b3480156106cf57600080fd5b5061042f60105481565b3480156106e557600080fd5b5061045d6106f436600461544a565b611f84565b34801561070557600080fd5b5061045d610714366004615306565b6123ef565b34801561072557600080fd5b5061045d612441565b34801561073a57600080fd5b5061045d61074936600461544a565b61250e565b34801561075a57600080fd5b5061042f61076936600461544a565b612681565b34801561077a57600080fd5b506104b261078936600461523f565b61277d565b34801561079a57600080fd5b506002546001600160a01b03165b6040516001600160a01b0390911681526020016103db565b3480156107cc57600080fd5b5061045d6107db366004615222565b612799565b3480156107ec57600080fd5b506107a86107fb366004615476565b6128d6565b34801561080c57600080fd5b5061040461081b36600461536c565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561085057600080fd5b5061045d61085f366004615498565b6128f5565b34801561087057600080fd5b506004546107a8906001600160a01b031681565b34801561089057600080fd5b5061042f600081565b3480156108a557600080fd5b5061045d6108b4366004615498565b6129c6565b3480156108c557600080fd5b5061045d6108d436600461544a565b612a50565b3480156108e557600080fd5b5061045d6108f43660046154b3565b612f89565b34801561090557600080fd5b5061042f610914366004615306565b612fd0565b34801561092557600080fd5b5061045d61093436600461536c565b612fe7565b34801561094557600080fd5b5061045d61095436600461544a565b61300c565b34801561096557600080fd5b5061042f600f5481565b34801561097b57600080fd5b506109ab61098a36600461544a565b600960209081526000928352604080842090915290825290205461ffff1681565b60405161ffff90911681526020016103db565b3480156109ca57600080fd5b5061042f6109d936600461544a565b600a60209081526000928352604080842090915290825290205481565b348015610a0257600080fd5b5061045d610a11366004615222565b613280565b348015610a2257600080fd5b5061045d610a313660046154e4565b613291565b348015610a4257600080fd5b50610404610a5136600461551e565b600b60209081526000948552604080862082529385528385208152918452828420909152825290205460ff1681565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f000000000000000000000000000000000000000000000000000000001480610ad65750610ad682613938565b92915050565b67ffffffffffffffff851660009081526007602052604090205485906001600160a01b0316336001600160a01b031614610b42576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85610b6f8167ffffffffffffffff1660009081526007602052604090206002015464ffffffffff16151590565b610c0b5767ffffffffffffffff81166000908152600760205260409020600101544290610bbe9062278d009074010000000000000000000000000000000000000000900463ffffffff1661559a565b64ffffffffff161015610bd957610bd4816139cf565b610c0b565b6040517f1bee0d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c1481613a55565b610c4a576040517fd0404f8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c52613a92565b6001600160a01b038316610c92576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff87166000908152600b6020908152604080832061ffff8a16845282528083206001600160a01b0389168452825280832087845290915290205460ff16610d0d576040517f969bf72800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1a8787878787613aeb565b610d246001600555565b50505050505050565b836001600160a01b038a16610d6e576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003610da8576040517ff841798a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065463ffffffff16811115610dea576040517f5a90209700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8763ffffffff164210610e29576040517f15d3780400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085463ffffffff6c0100000000000000000000000090910481169088161015610e7f576040517f939ed38c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6301e1338063ffffffff88161115610ec3576040517fa9a4b7de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82811015610efd57878782818110610ee157610ee16155b8565b9050602002013582610ef391906155e7565b9150600101610ec7565b506001600160a01b038a16610f5657600f54610f1990826155e7565b3414610f51576040517f39142b5400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110fd565b600f543414610f91576040517f39142b5400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80156110fd576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038c16906370a0823190602401602060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b91906155fa565b90506110326001600160a01b038c16333085613c19565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038d16906370a0823190602401602060405180830381865afa158015611092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b691906155fa565b9050826110c38383615613565b146110fa576040517f280034c700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b600f546010600082825461111191906155e7565b9250508190555060006040518061012001604052808d6001600160a01b031681526020018c6001600160a01b031681526020018b63ffffffff1681526020018a63ffffffff168152602001600064ffffffffff1681526020018381526020018381526020018989808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506020018467ffffffffffffffff8111156111c8576111c8614f67565b6040519080825280602002602001820160405280156111f1578160200160208202803683370190505b50905260088054919250906000906112129067ffffffffffffffff16615626565b82546101009290920a67ffffffffffffffff81810219909316918316021790915560085416600081815260076020908152604091829020845181547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0391821617825585830151600183018054958801516060890151929093167fffffffffffffffff000000000000000000000000000000000000000000000000909616959095177401000000000000000000000000000000000000000063ffffffff93841602177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000092909116919091021790925560808401516002830180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff90921691909117905560a0840151600383015560c0840151600483015560e0840151805185939261138f926005850192910190614c26565b5061010082015180516113ac916006840191602090910190614c71565b50506040805160608101825260008082526020820181905291810182905290915081908190899060005b828110156115c8578c8c828181106113f0576113f06155b8565b905060600201803603810190611406919061564d565b91508160000151945081604001519550816020015193508361ffff168a1080611431575061ffff8416155b15611468576040517fce7e065e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff87166000908152600e6020908152604080832080546001808201835591855293839020865160029095020180549387015161ffff1674010000000000000000000000000000000000000000027fffffffffffffffffffff000000000000000000000000000000000000000000009094166001600160a01b039586161793909317835585820151920191909155517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101889052908616906323b872dd90606401600060405180830381600087803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b5050505067ffffffffffffffff87166000908152600b6020908152604080832061ffff8816845282528083206001600160a01b038916845282528083208984529091529020805460ff19166001908117909155016113d6565b50895160408051808201909152600081526060602082015290925060008060005b858110156117bc578d8181518110611603576116036155b8565b602002602001015193508360200151519250828261162191906155e7565b84519850915060005b838110156117b35784602001518181518110611648576116486155b8565b60200260200101519950600d60008c67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060405180606001604052808b6001600160a01b03168152602001600061ffff1681526020018c815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a81548161ffff021916908361ffff160217905550604082015181600101555050886001600160a01b03166323b872dd33308d6040518463ffffffff1660e01b8152600401611776939291906001600160a01b039384168152919092166020820152604081019190915260600190565b600060405180830381600087803b15801561179057600080fd5b505af11580156117a4573d6000803e3d6000fd5b5050505080600101905061162a565b506001016115e9565b5060085468010000000000000000900463ffffffff1681111561180b576040517fdceda73e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050508c6001600160a01b03168167ffffffffffffffff167f96ce59e14c7cb8c2bd14fe9af6e771bfd51d9be8b63e3fdeba2d593113d9285e8e8e8e888f8f604051611861969594939291906156b7565b60405180910390a350505050505050505050505050565b611880613a92565b600061188b81613cca565b6001600160a01b0382166118cb576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60105480156119275760006010556118e38382613cd4565b826001600160a01b03167fc0819c13be868895eb93e40eaceb96de976442fa1d404e5c55f14bb65a8c489a8260405161191e91815260200190565b60405180910390a25b50506119336001600555565b50565b600e602052816000526040600020818154811061195257600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03821693507401000000000000000000000000000000000000000090910461ffff16915083565b6004546001600160a01b031633146119f757600480546040517f1cf993f400000000000000000000000000000000000000000000000000000000815233928101929092526001600160a01b031660248201526044015b60405180910390fd5b611a02838383613ded565b505050565b611a0f613a92565b6001600160a01b038116611a4f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff841660009081526007602052604090206002015464ffffffffff16611aa9576040517f1bee0d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ab284613a55565b15611ae9576040517f203d82d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff841660008181526009602090815260408083203380855290835281842054948452600b835281842061ffff9095168085529483528184206001600160a01b038916855283528184208785529092529091205490919060ff16611b80576040517f969bf72800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b8d8682878787614094565b5050611b996001600555565b50505050565b67ffffffffffffffff8116600090815260076020908152604091829020600601805483518184028101840190945280845260609392830182828015611c0d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bef575b50505050509050919050565b600082815260208190526040902060010154611c3481613cca565b611a0283836141ac565b67ffffffffffffffff8116600090815260076020908152604091829020600501805483518184028101840190945280845260609392830182828015611c0d57602002820191906000526020600020905b815481526020019060010190808311611c8e5750505050509050919050565b6001600160a01b0381163314611d2b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016119ee565b611d3582826141ce565b5050565b6000611d4481613cca565b63ffffffff85161580611d5b575063ffffffff8416155b80611d64575082155b80611d6d575081155b15611da4576040517fe570699100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c0808201835289151580835261ffff8a16602080850182905263ffffffff8b8116868801819052908b16606080880182905260808089018d905260a09889018c9052601180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff8916176101008802177fffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffff16630100000086027fffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffff1617670100000000000000850217905560128d905560138c905589519687529386019490945296840152908201949094529283018690529082018490527f52a459681d6c26ba4c8e787b15f0e115e8c64394c2b24290170956f99825e5d6910160405180910390a150505050505050565b7f165b4e4bdd6508f05266283fa4bd4fd5ebb938a5f16867c98d3e5cbad8ff56eb611f2081613cca565b67ffffffffffffffff821660009081526007602052604090206002015464ffffffffff1615611f7b576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d35826139cf565b611f8c613a92565b67ffffffffffffffff821660009081526007602052604090206002015464ffffffffff16611fe6576040517f1bee0d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611fef82613a55565b15612026576040517f203d82d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116612066576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff82166000908152600960209081526040808320338085529252822054909161ffff909116908190036120cd576040517f93a5f3c700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff84166000908152600e6020908152604080832080548251818502810185019093528083529192909190849084015b82821015612170576000848152602090819020604080516060810182526002860290920180546001600160a01b038116845274010000000000000000000000000000000000000000900461ffff1683850152600190810154918301919091529083529092019101612104565b50505050905060008151905060008060005b838110156122595784818151811061219c5761219c6155b8565b60200260200101516000015192508481815181106121bc576121bc6155b8565b60200260200101516040015191508561ffff168582815181106121e1576121e16155b8565b60200260200101516020015161ffff1614801561223f575067ffffffffffffffff89166000908152600b6020908152604080832061ffff8a16845282528083206001600160a01b0387168452825280832085845290915290205460ff165b1561225157612251898785858c614094565b600101612182565b5067ffffffffffffffff88166000908152600d6020908152604080832080548251818502810185019093528083529193909284015b828210156122fa576000848152602090819020604080516060810182526002860290920180546001600160a01b038116845274010000000000000000000000000000000000000000900461ffff168385015260019081015491830191909152908352909201910161228e565b5050505093508351925060005b838110156123de57848181518110612321576123216155b8565b6020026020010151600001519250848181518110612341576123416155b8565b60200260200101516040015191508561ffff16858281518110612366576123666155b8565b60200260200101516020015161ffff161480156123c4575067ffffffffffffffff89166000908152600b6020908152604080832061ffff8a16845282528083206001600160a01b0387168452825280832085845290915290205460ff165b156123d6576123d6898785858c614094565b600101612307565b50505050505050611d356001600555565b60006123fa81613cca565b600f80549083905560408051828152602081018590527f74dbbbe280ef27b79a8a0c449d5ae2ba7a31849103241d0f98df70bbc9d03e3791015b60405180910390a1505050565b6003546001600160a01b0316331461249b5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016119ee565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000808216339081179093556003805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b612516613a92565b6001600160a01b038116612556576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360006125638483612681565b90508060000361259f576040517f969bf72800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff84166000818152600a602090815260408083206001600160a01b038716845282528083208590559282526007905290812060030180548392906125ec908490615613565b909155505067ffffffffffffffff84166000908152600760205260409020600101546001600160a01b03166126228482846141f0565b604080516001600160a01b0383811682526020820185905285169167ffffffffffffffff8816917fce3bcb6e219596cf26007ffdfaae8953bc3f76e3f36c0a79b23e28020da3222e910160405180910390a3505050611d356001600555565b67ffffffffffffffff821660009081526007602052604081206002015464ffffffffff1615806126b557506126b583613a55565b156126c257506000610ad6565b67ffffffffffffffff831660009081526009602090815260408083206001600160a01b038616845290915281205461ffff1690819003612706576000915050610ad6565b67ffffffffffffffff84166000818152600a602090815260408083206001600160a01b03881684528252808320549383526007909152902060050161274c600184615738565b61ffff1681548110612760576127606155b8565b90600052602060002001546127759190615613565b949350505050565b600d602052816000526040600020818154811061195257600080fd5b6002546001600160a01b031633148015906127bf57506004546001600160a01b03163314155b1561282a57336127d76002546001600160a01b031690565b600480546040517f061db9c10000000000000000000000000000000000000000000000000000000081526001600160a01b03948516928101929092529183166024820152911660448201526064016119ee565b6001600160a01b03811661286a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd1a6a14209a385a964d036e404cb5cfb71f4000cdb03c9366292430787261be69060200160405180910390a150565b60008281526001602052604081206128ee908361421c565b9392505050565b600061290081613cca565b6202a30063ffffffff83161015612943576040517f939ed38c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6008805463ffffffff8481166c010000000000000000000000008181027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff85161790945560408051949093049091168084526020840191909152917f1398a97a969c92d765fc12d4c55a8296fe70182a141706cd6765919681ff441f9101612434565b60006129d181613cca565b6008805463ffffffff848116680100000000000000008181027fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff85161790945560408051949093049091168084526020840191909152917f15e0bb40e5929263cd42074e0a96296cbffd80a90be0ecb46d84e656e90970549101612434565b67ffffffffffffffff821660009081526007602052604090205482906001600160a01b0316336001600160a01b031614612ab6576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82612ae38167ffffffffffffffff1660009081526007602052604090206002015464ffffffffff16151590565b612b485767ffffffffffffffff81166000908152600760205260409020600101544290612b329062278d009074010000000000000000000000000000000000000000900463ffffffff1661559a565b64ffffffffff161015610bd957612b48816139cf565b612b5181613a55565b612b87576040517fd0404f8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b8f613a92565b6001600160a01b038316612bcf576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff84166000908152600e6020908152604080832080548251818502810185019093528083529192909190849084015b82821015612c72576000848152602090819020604080516060810182526002860290920180546001600160a01b038116845274010000000000000000000000000000000000000000900461ffff1683850152600190810154918301919091529083529092019101612c06565b5050505090506000815190506000806000612cb4604051806060016040528060006001600160a01b03168152602001600061ffff168152602001600081525090565b60005b85811015612d8c57868181518110612cd157612cd16155b8565b60200260200101519150816000015194508160400151935081602001519250600b60008c67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008461ffff1661ffff1681526020019081526020016000206000866001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002060009054906101000a900460ff1615612d8457612d848b8487878e613aeb565b600101612cb7565b5067ffffffffffffffff8a166000908152600d6020908152604080832080548251818502810185019093528083529193909284015b82821015612e2d576000848152602090819020604080516060810182526002860290920180546001600160a01b038116845274010000000000000000000000000000000000000000900461ffff1683850152600190810154918301919091529083529092019101612dc1565b50505067ffffffffffffffff8c166000908152600d6020526040812054929850919650505b85811015612f3457868181518110612e6c57612e6c6155b8565b60200260200101519150816000015194508160400151935081602001519250600b60008c67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008461ffff1661ffff1681526020019081526020016000206000866001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002060009054906101000a900460ff1680612f1a575061ffff8316155b15612f2c57612f2c8b8487878e613aeb565b600101612e52565b5067ffffffffffffffff8a166000908152600d60205260408120612f5791614cde565b67ffffffffffffffff8a166000908152600e60205260408120612f7991614cde565b505050505050611b996001600555565b67ffffffffffffffff851660009081526009602090815260408083206001600160a01b038816845290915290205461ffff16612fc88682868686610adc565b505050505050565b6000818152600160205260408120610ad690614228565b60008281526020819052604090206001015461300281613cca565b611a0283836141ce565b613014613a92565b67ffffffffffffffff821660009081526007602052604090205482906001600160a01b0316336001600160a01b03161461307a576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826130a78167ffffffffffffffff1660009081526007602052604090206002015464ffffffffff16151590565b61310c5767ffffffffffffffff811660009081526007602052604090206001015442906130f69062278d009074010000000000000000000000000000000000000000900463ffffffff1661559a565b64ffffffffff161015610bd95761310c816139cf565b61311581613a55565b61314b576040517fd0404f8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03831661318b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8416600090815260076020526040812060030154908190036131e2576040517f969bf72800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff851660009081526007602052604081206003810191909155600101546001600160a01b031661321b8582846141f0565b604080516001600160a01b0380881682528316602082015290810183905267ffffffffffffffff8716907fedfc9916535bec7ba1d215e222639f283bb485a546fbc7751cb3003b2487c89d9060600160405180910390a250505050611d356001600555565b613288614232565b6119338161428e565b7f165b4e4bdd6508f05266283fa4bd4fd5ebb938a5f16867c98d3e5cbad8ff56eb6132bb81613cca565b67ffffffffffffffff84166000908152600760205260409020600181015474010000000000000000000000000000000000000000900463ffffffff16421161332f576040517fd3018d1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff851660009081526007602052604090206002015464ffffffffff161561338a576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8280156138915760058201548111156133cf576040517f9172fb5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001820154613400907801000000000000000000000000000000000000000000000000900463ffffffff164261559a565b67ffffffffffffffff8716600090815260076020526040812060020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff93909316929092179091555b818110156134f857613465816001615753565b67ffffffffffffffff8816600090815260096020526040812090888885818110613491576134916155b8565b90506020020160208101906134a69190615222565b6001600160a01b03168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff92909216919091179055600101613452565b5067ffffffffffffffff86166000908152600760205260409020613520906006018686614cff565b5067ffffffffffffffff86166000908152600d602052604090205463ffffffff81161561388b57816001036137385767ffffffffffffffff87166000908152600d602052604081209080808989828161357b5761357b6155b8565b90506020020160208101906135909190615222565b905060005b8563ffffffff1681101561372e578481815481106135b5576135b56155b8565b600091825260209091206002909102015485546001600160a01b0390911694508590829081106135e7576135e76155b8565b90600052602060002090600202016001015492506001600b60008e67ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206000600161ffff1681526020019081526020016000206000866001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002060006101000a81548160ff0219169083151502179055506001858281548110613699576136996155b8565b906000526020600020906002020160000160146101000a81548161ffff021916908361ffff160217905550816001600160a01b03168c67ffffffffffffffff167ff6e5a522fc2128fe2f9aa758c32fd30639e277a0391e3b77c242e2e140834017868660405161371e9291906001600160a01b03929092168252602082015260400190565b60405180910390a3600101613595565b505050505061388b565b6004546040805160c08101825260135481526012546020820152601154610100810461ffff16928201929092526000926001600160a01b031691639b1c385e9190606082019061379a908790670100000000000000900463ffffffff1661576e565b6011546137b491906301000000900463ffffffff16615796565b63ffffffff168152600160208083019190915260408051918201815260115460ff1615158252909101906137e790614350565b8152506040518263ffffffff1660e01b81526004016138069190615803565b6020604051808303816000875af1158015613825573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384991906155fa565b6000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8a16179055505b506138ec565b61389c600142615860565b67ffffffffffffffff8716600090815260076020526040902060020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001663ffffffff929092169190911790555b8567ffffffffffffffff167f16d96bffc4329041e15226a1bd1b20bc0ee33f5f7bb8e11877eb917ae2c05ca3868660405161392892919061587d565b60405180910390a2505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610ad657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ad6565b6139da600142615860565b67ffffffffffffffff821660008181526007602052604080822060020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001663ffffffff9590951694909417909355915190917fb7329e7cadb48d9cf876a7b7c6f4b44919ce6e8f47138d118707acfb9264983591a250565b67ffffffffffffffff811660009081526007602052604081206002015464ffffffffff1680158015906128ee575064ffffffffff16421192915050565b600260055403613ae45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016119ee565b6002600555565b67ffffffffffffffff85166000908152600b6020908152604080832061ffff8816845282528083206001600160a01b0387811680865291845282852087865290935292819020805460ff19169055517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201529083166024820152604481018490526342842e0e90606401600060405180830381600087803b158015613b9557600080fd5b505af1158015613ba9573d6000803e3d6000fd5b5050604080516001600160a01b03808616825261ffff891660208301528716918101919091526060810185905267ffffffffffffffff881692507f6334894bb9d500f9065592453c8b0f0127e2220c83be138f2792a93fb51e932f91506080015b60405180910390a25050505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611b999085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526143ee565b61193381336144d6565b80471015613d245760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016119ee565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613d71576040519150601f19603f3d011682016040523d82523d6000602084013e613d76565b606091505b5050905080611a025760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016119ee565b600082826000818110613e0257613e026155b8565b6000878152600c602090815260408083205467ffffffffffffffff168084526007835281842060060154600d845291842080549390950296909601359650935090918291825b81811015614053576000868983604051602001613e6f929190918252602082015260400190565b6040516020818303038152906040528051906020012060001c613e9291906158cb565b67ffffffffffffffff891660009081526007602052604081206006018054929350909183908110613ec557613ec56155b8565b60009182526020909120015485546001600160a01b039091169150859084908110613ef257613ef26155b8565b600091825260209091206002909102015485546001600160a01b039091169750859084908110613f2457613f246155b8565b60009182526020808320600160029093020182015467ffffffffffffffff8d168452600b909152604083209098509091613f5e85846155e7565b61ffff168152602080820192909252604090810160009081206001600160a01b038c16825283528181208a82529092529020805460ff1916911515919091179055613faa8260016155e7565b858481548110613fbc57613fbc6155b8565b906000526020600020906002020160000160146101000a81548161ffff021916908361ffff160217905550806001600160a01b03168967ffffffffffffffff167ff6e5a522fc2128fe2f9aa758c32fd30639e277a0391e3b77c242e2e14083401789896040516140419291906001600160a01b03929092168252602082015260400190565b60405180910390a35050600101613e48565b50505060009788525050600c6020525050604090932080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000169055505050565b67ffffffffffffffff85166000908152600b6020908152604080832061ffff8816845282528083206001600160a01b0387811680865291845282852087865290935292819020805460ff19169055517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201529083166024820152604481018490526342842e0e90606401600060405180830381600087803b15801561413e57600080fd5b505af1158015614152573d6000803e3d6000fd5b50506040805161ffff881681526001600160a01b038716602082015290810185905267ffffffffffffffff881692507fbcdf1487c9b0f6650c1e48fce71b090ec57dba8ba1f02b1b14212a3730e91e0c9150606001613c0a565b6141b68282614549565b6000828152600160205260409020611a0290826145e7565b6141d882826145fc565b6000828152600160205260409020611a02908261467b565b6001600160a01b03821661420857611a028382613cd4565b611a026001600160a01b0383168483614690565b60006128ee83836146d9565b6000610ad6825490565b6002546001600160a01b0316331461428c5760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016119ee565b565b336001600160a01b038216036142e65760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016119ee565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03838116918217909255600254604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b60607f92fd13387c7fe7befbc38d303d6468778fb9731bc4583f17d92989c6fcfdeaaa8260405160240161438991511515815260200190565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915292915050565b6000614443826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166147039092919063ffffffff16565b90508051600014806144645750808060200190518101906144649190615906565b611a025760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016119ee565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16611d355761450781614712565b614512836020614724565b604051602001614523929190615923565b60408051601f198184030181529082905262461bcd60e51b82526119ee916004016159a4565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16611d35576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556145a33390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006128ee836001600160a01b03841661494d565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615611d35576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006128ee836001600160a01b03841661499c565b6040516001600160a01b038316602482015260448101829052611a029084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401613c66565b60008260000182815481106146f0576146f06155b8565b9060005260206000200154905092915050565b60606127758484600085614a96565b6060610ad66001600160a01b03831660145b606060006147338360026159b7565b61473e9060026155e7565b67ffffffffffffffff81111561475657614756614f67565b6040519080825280601f01601f191660200182016040528015614780576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106147b7576147b76155b8565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061481a5761481a6155b8565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006148568460026159b7565b6148619060016155e7565b90505b60018111156148fe577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106148a2576148a26155b8565b1a60f81b8282815181106148b8576148b86155b8565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936148f7816159ce565b9050614864565b5083156128ee5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016119ee565b600081815260018301602052604081205461499457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610ad6565b506000610ad6565b60008181526001830160205260408120548015614a855760006149c0600183615613565b85549091506000906149d490600190615613565b9050818114614a395760008660000182815481106149f4576149f46155b8565b9060005260206000200154905080876000018481548110614a1757614a176155b8565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080614a4a57614a4a615a03565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610ad6565b6000915050610ad6565b5092915050565b606082471015614b0e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016119ee565b600080866001600160a01b03168587604051614b2a9190615a32565b60006040518083038185875af1925050503d8060008114614b67576040519150601f19603f3d011682016040523d82523d6000602084013e614b6c565b606091505b5091509150614b7d87838387614b88565b979650505050505050565b60608315614bf7578251600003614bf0576001600160a01b0385163b614bf05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016119ee565b5081612775565b6127758383815115614c0c5781518083602001fd5b8060405162461bcd60e51b81526004016119ee91906159a4565b828054828255906000526020600020908101928215614c61579160200282015b82811115614c61578251825591602001919060010190614c46565b50614c6d929150614d6a565b5090565b828054828255906000526020600020908101928215614c61579160200282015b82811115614c6157825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909116178255602090920191600190910190614c91565b50805460008255600202906000526020600020908101906119339190614d7f565b828054828255906000526020600020908101928215614c61579160200282015b82811115614c615781547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03843516178255602090920191600190910190614d1f565b5b80821115614c6d5760008155600101614d6b565b5b80821115614c6d5780547fffffffffffffffffffff0000000000000000000000000000000000000000000016815560006001820155600201614d80565b803567ffffffffffffffff81168114614dd557600080fd5b919050565b600060208284031215614dec57600080fd5b6128ee82614dbd565b600060208284031215614e0757600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146128ee57600080fd5b803561ffff81168114614dd557600080fd5b6001600160a01b038116811461193357600080fd5b600080600080600060a08688031215614e7657600080fd5b614e7f86614dbd565b9450614e8d60208701614e37565b93506040860135614e9d81614e49565b9250606086013591506080860135614eb481614e49565b809150509295509295909350565b803563ffffffff81168114614dd557600080fd5b60008083601f840112614ee857600080fd5b50813567ffffffffffffffff811115614f0057600080fd5b6020830191508360208260051b8501011115614f1b57600080fd5b9250929050565b60008083601f840112614f3457600080fd5b50813567ffffffffffffffff811115614f4c57600080fd5b602083019150836020606083028501011115614f1b57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715614fb957614fb9614f67565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715614fe857614fe8614f67565b604052919050565b600067ffffffffffffffff82111561500a5761500a614f67565b5060051b60200190565b600082601f83011261502557600080fd5b8135602061503a61503583614ff0565b614fbf565b828152600592831b850182019282820191908785111561505957600080fd5b8387015b8581101561513c57803567ffffffffffffffff8082111561507e5760008081fd5b818a019150604080601f19848e030112156150995760008081fd5b6150a1614f96565b888401356150ae81614e49565b815283820135838111156150c25760008081fd5b8085019450508c603f8501126150da57600092508283fd5b8884013592506150ec61503584614ff0565b83815292861b8401820192898101908e8511156151095760008081fd5b948301945b848610156151275785358252948a0194908a019061510e565b828b015250875250505092840192840161505d565b5090979650505050505050565b600080600080600080600080600060e08a8c03121561516757600080fd5b893561517281614e49565b985060208a013561518281614e49565b975061519060408b01614ec2565b965061519e60608b01614ec2565b955060808a013567ffffffffffffffff808211156151bb57600080fd5b6151c78d838e01614ed6565b909750955060a08c01359150808211156151e057600080fd5b6151ec8d838e01614f22565b909550935060c08c013591508082111561520557600080fd5b506152128c828d01615014565b9150509295985092959850929598565b60006020828403121561523457600080fd5b81356128ee81614e49565b6000806040838503121561525257600080fd5b61525b83614dbd565b946020939093013593505050565b60008060006040848603121561527e57600080fd5b83359250602084013567ffffffffffffffff81111561529c57600080fd5b6152a886828701614ed6565b9497909650939450505050565b600080600080608085870312156152cb57600080fd5b6152d485614dbd565b935060208501356152e481614e49565b92506040850135915060608501356152fb81614e49565b939692955090935050565b60006020828403121561531857600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156153605783516001600160a01b03168352928401929184019160010161533b565b50909695505050505050565b6000806040838503121561537f57600080fd5b82359150602083013561539181614e49565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015615360578351835292840192918401916001016153b8565b801515811461193357600080fd5b60008060008060008060c087890312156153fb57600080fd5b8635615406816153d4565b955061541460208801614e37565b945061542260408801614ec2565b935061543060608801614ec2565b92506080870135915060a087013590509295509295509295565b6000806040838503121561545d57600080fd5b61546683614dbd565b9150602083013561539181614e49565b6000806040838503121561548957600080fd5b50508035926020909101359150565b6000602082840312156154aa57600080fd5b6128ee82614ec2565b600080600080600060a086880312156154cb57600080fd5b6154d486614dbd565b94506020860135614e8d81614e49565b6000806000604084860312156154f957600080fd5b61550284614dbd565b9250602084013567ffffffffffffffff81111561529c57600080fd5b6000806000806080858703121561553457600080fd5b61553d85614dbd565b935061554b60208601614e37565b9250604085013561555b81614e49565b9396929550929360600135925050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b64ffffffffff818116838216019080821115614a8f57614a8f61556b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820180821115610ad657610ad661556b565b60006020828403121561560c57600080fd5b5051919050565b81810381811115610ad657610ad661556b565b600067ffffffffffffffff8083168181036156435761564361556b565b6001019392505050565b60006060828403121561565f57600080fd5b6040516060810181811067ffffffffffffffff8211171561568257615682614f67565b604052823561569081614e49565b815261569e60208401614e37565b6020820152604083013560408201528091505092915050565b6001600160a01b0387168152600063ffffffff808816602084015280871660408401525084606083015260a060808301528260a08301527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561571b57600080fd5b8260051b808560c08501379190910160c001979650505050505050565b61ffff828116828216039080821115614a8f57614a8f61556b565b61ffff818116838216019080821115614a8f57614a8f61556b565b63ffffffff81811683821602808216919082811461578e5761578e61556b565b505092915050565b63ffffffff818116838216019080821115614a8f57614a8f61556b565b60005b838110156157ce5781810151838201526020016157b6565b50506000910152565b600081518084526157ef8160208601602086016157b3565b601f01601f19169290920160200192915050565b60208152815160208201526020820151604082015261ffff60408301511660608201526000606083015163ffffffff80821660808501528060808601511660a0850152505060a083015160c08084015261277560e08401826157d7565b63ffffffff828116828216039080821115614a8f57614a8f61556b565b60208082528181018390526000908460408401835b868110156158c05782356158a581614e49565b6001600160a01b031682529183019190830190600101615892565b509695505050505050565b600082615901577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b60006020828403121561591857600080fd5b81516128ee816153d4565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161595b8160178501602088016157b3565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516159988160288401602088016157b3565b01602801949350505050565b6020815260006128ee60208301846157d7565b8082028115828204841417610ad657610ad661556b565b6000816159dd576159dd61556b565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251615a448184602087016157b3565b919091019291505056fea264697066735822122083946c20afe0f66cec3386926ac32781a258a708932af4506fec426a277dda6b64736f6c63430008130033