Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldCreditLine","type":"address"},{"indexed":true,"internalType":"address","name":"newCreditLine","type":"address"}],"name":"CreditLineMigrated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"uint256","name":"tranche","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DepositMade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"borrower","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DrawdownMade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"}],"name":"DrawdownsPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"}],"name":"DrawdownsUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"}],"name":"EmergencyShutdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"interestAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"principalAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"remainingAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reserveAmount","type":"uint256"}],"name":"PaymentApplied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ReserveFundsCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":true,"internalType":"uint256","name":"tranche","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"principalSharePrice","type":"uint256"},{"indexed":false,"internalType":"int256","name":"principalDelta","type":"int256"},{"indexed":false,"internalType":"uint256","name":"interestSharePrice","type":"uint256"},{"indexed":false,"internalType":"int256","name":"interestDelta","type":"int256"}],"name":"SharePriceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"uint256","name":"tranche","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"interestWithdrawn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"principalWithdrawn","type":"uint256"}],"name":"WithdrawalMade","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FP_SCALING_FACTOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LOCKER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ONE_HUNDRED","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OWNER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SECONDS_PER_DAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"__BaseUpgradeablePausable__init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"__PauserPausable__init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"assess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"availableToWithdraw","outputs":[{"internalType":"uint256","name":"interestRedeemable","type":"uint256"},{"internalType":"uint256","name":"principalRedeemable","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"borrower","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"config","outputs":[{"internalType":"contract GoldfinchConfig","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createdAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creditLine","outputs":[{"internalType":"contract IV2CreditLine","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tranche","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tranche","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"depositWithPermit","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"drawdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"drawdownsPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergencyShutdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tranche","type":"uint256"}],"name":"getTranche","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"principalDeposited","type":"uint256"},{"internalType":"uint256","name":"principalSharePrice","type":"uint256"},{"internalType":"uint256","name":"interestSharePrice","type":"uint256"},{"internalType":"uint256","name":"lockedUntil","type":"uint256"}],"internalType":"struct ITranchedPool.TrancheInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_config","type":"address"},{"internalType":"address","name":"_borrower","type":"address"},{"internalType":"uint256","name":"_juniorFeePercent","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"},{"internalType":"uint256","name":"_interestApr","type":"uint256"},{"internalType":"uint256","name":"_paymentPeriodInDays","type":"uint256"},{"internalType":"uint256","name":"_termInDays","type":"uint256"},{"internalType":"uint256","name":"_lateFeeApr","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"interestApr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"juniorFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lateFeeApr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockJuniorCapital","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newCl","type":"address"}],"name":"migrateAndSetNewCreditLine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_borrower","type":"address"},{"internalType":"uint256","name":"_limit","type":"uint256"},{"internalType":"uint256","name":"_interestApr","type":"uint256"},{"internalType":"uint256","name":"_paymentPeriodInDays","type":"uint256"},{"internalType":"uint256","name":"_termInDays","type":"uint256"},{"internalType":"uint256","name":"_lateFeeApr","type":"uint256"}],"name":"migrateCreditLine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IV1CreditLine","name":"clToMigrate","type":"address"},{"internalType":"uint256","name":"termEndTime","type":"uint256"},{"internalType":"uint256","name":"nextDueTime","type":"uint256"},{"internalType":"uint256","name":"interestAccruedAsOf","type":"uint256"},{"internalType":"uint256","name":"lastFullPaymentTime","type":"uint256"},{"internalType":"uint256","name":"totalInterestPaid","type":"uint256"}],"name":"migrateCreditLineToV2","outputs":[{"internalType":"contract IV2CreditLine","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"migrated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pauseDrawdowns","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"pay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paymentPeriodInDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sharePrice","type":"uint256"},{"internalType":"uint256","name":"totalShares","type":"uint256"}],"name":"sharePriceToUsdc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"termInDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseDrawdowns","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateGoldfinchConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalShares","type":"uint256"}],"name":"usdcToSharePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"interestWithdrawn","type":"uint256"},{"internalType":"uint256","name":"principalWithdrawn","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawMax","outputs":[{"internalType":"uint256","name":"interestWithdrawn","type":"uint256"},{"internalType":"uint256","name":"principalWithdrawn","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"withdrawMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50615c5480620000216000396000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c80639010d07c116101b8578063bf6c87c711610104578063d547741f116100a2578063e58378bb1161007c578063e58378bb14610621578063e63ab1e914610629578063f0b25bde14610631578063f36213671461063957610342565b8063d547741f146105db578063d972e8ad146105ee578063e2bbb1581461060e57610342565b8063c77d5698116100de578063c77d5698146105a5578063ca15c873146105ad578063cde88845146105c0578063cf09e0d0146105d357610342565b8063bf6c87c714610582578063bfaa8cca1461058a578063c290d6911461059257610342565b8063a217fddf11610171578063a8f9c4fe1161014b578063a8f9c4fe14610557578063aa2a7c4c1461055f578063b396999214610572578063b6db75a01461057a57610342565b8063a217fddf1461053f578063a4d66daf14610547578063a6a25e881461054f57610342565b80639010d07c146104d857806391d14854146104eb57806399dd8df3146104fe5780639d11053014610506578063a079a4dd14610519578063a18d41761461052c57610342565b806348e6f2961161029257806368dcfdc0116102305780637df1f1b91161020a5780637df1f1b9146104a25780638456cb59146104aa578063895465d1146104b25780638ba796af146104c557610342565b806368dcfdc01461048a57806374f0314f1461049257806379502c551461049a57610342565b8063515bc3231161026c578063515bc32314610454578063526d81f61461046757806356ce15601461046f5780635c975abb1461048257610342565b806348e6f296146104315780634d02fe6f146104395780634f92a7281461044c57610342565b80632f2ff15d116102ff5780633f4ba83a116102d95780633f4ba83a146103eb5780634026478e146103f3578063441a3e70146103fb57806347195e131461041c57610342565b80632f2ff15d146103bd5780633403c2fc146103d057806336568abe146103d857610342565b80630174b449146103475780630881806c14610370578063097616a31461037a57806317f769411461038d578063248a9ca3146103a25780632c678c64146103b5575b600080fd5b61035a61035536600461502b565b610641565b604051610367919061524f565b60405180910390f35b610378610668565b005b610378610388366004614e6e565b6106d2565b610395610802565b6040516103679190615244565b61035a6103b0366004614fe4565b61080c565b610395610821565b6103786103cb366004614ffc565b61082b565b61037861086f565b6103786103e6366004614ffc565b610a46565b610378610a88565b610378610ac6565b61040e61040936600461502b565b610b25565b604051610367929190615b85565b610424610cff565b604051610367919061516b565b61035a610d0f565b61040e610447366004614fe4565b610d92565b610378610e78565b61035a610462366004615105565b610f28565b610378610fbf565b61037861047d366004614e6e565b61104a565b6103956112f9565b61035a611302565b61035a61130e565b610424611315565b610424611325565b6103786113a3565b6104246104c0366004614f10565b6113e1565b6103786104d3366004614ea6565b611947565b6104246104e636600461502b565b611c51565b6103956104f9366004614ffc565b611c69565b61035a611c81565b610378610514366004614f5b565b611cc7565b610378610527366004614fe4565b611d30565b61037861053a366004614f10565b6120e5565b61035a6129be565b61035a6129c3565b610378612a09565b610378612a34565b61040e61056d366004614fe4565b612a93565b61035a612c8e565b610395612cd4565b610378612cf0565b61035a612d4c565b6103786105a0366004614fe4565b612d51565b61035a612da5565b61035a6105bb366004614fe4565b612dac565b61035a6105ce36600461502b565b612dc3565b61035a612def565b6103786105e9366004614ffc565b612df6565b6106016105fc366004614fe4565b612e30565b6040516103679190615b30565b61035a61061c36600461502b565b612e80565b61035a613046565b61035a613058565b61035a61306a565b61035a6130b0565b600061065f670de0b6b3a764000061065985856130c2565b906130fc565b90505b92915050565b610680600080516020615bff83398151915233611c69565b6106a55760405162461bcd60e51b815260040161069c90615728565b60405180910390fd5b60975460ff16156106c85760405162461bcd60e51b815260040161069c906156c9565b6106d061313e565b565b600054610100900460ff16806106eb57506106eb6131b2565b806106f9575060005460ff16155b6107155760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff16158015610740576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166107665760405162461bcd60e51b815260040161069c90615774565b61076e6131b8565b610776613239565b61077e6132c5565b610796600080516020615bbf83398151915283610865565b6107ae600080516020615bdf83398151915283610865565b6107d4600080516020615bdf833981519152600080516020615bbf833981519152613354565b6107ec600080516020615bbf83398151915280613354565b80156107fe576000805461ff00191690555b5050565b6101c75460ff1681565b60009081526065602052604090206002015490565b6101d25460ff1681565b600082815260656020526040902060020154610849906104f9613369565b6108655760405162461bcd60e51b815260040161069c906152ed565b6107fe828261336d565b610877612cd4565b6108935760405162461bcd60e51b815260040161069c90615a39565b61089b6112f9565b6108a7576108a76113a3565b6101c5546000906108c0906001600160a01b03166133d6565b6101c5549091506000906108dc906001600160a01b03166133e1565b90506000826001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161090c919061516b565b60206040518083038186803b15801561092457600080fd5b505afa158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c91906150c0565b9050801561096f5761096f838383613461565b6101c3546040516370a0823160e01b81526000916001600160a01b03808716926370a08231926109a392169060040161516b565b60206040518083038186803b1580156109bb57600080fd5b505afa1580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f391906150c0565b90508015610a15576101c354610a159085906001600160a01b031685846134a2565b60405130907f1fc1e771236d2e93bb9541cdcb4654ba0fd3fb615b48d829b7b365f03998512690600090a250505050565b610a4e613369565b6001600160a01b0316816001600160a01b031614610a7e5760405162461bcd60e51b815260040161069c90615abb565b6107fe82826134de565b610aa2600080516020615bdf8339815191526104f9613369565b610abe5760405162461bcd60e51b815260040161069c9061541e565b6106d0613547565b610ade600080516020615bff83398151915233611c69565b610afa5760405162461bcd60e51b815260040161069c90615728565b60975460ff1615610b1d5760405162461bcd60e51b815260040161069c906156c9565b6106d06135b3565b6101c55460009081908490610b42906001600160a01b0316613708565b6001600160a01b031663430c208133836040518363ffffffff1660e01b8152600401610b6f9291906151c0565b60206040518083038186803b158015610b8757600080fd5b505afa158015610b9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbf9190614fc4565b610bdb5760405162461bcd60e51b815260040161069c90615918565b60c95460ff16610bfd5760405162461bcd60e51b815260040161069c90615a02565b60c9805460ff1916905560975460ff1615610c2a5760405162461bcd60e51b815260040161069c906156c9565b610c32614d98565b6101c554610c48906001600160a01b0316613708565b6001600160a01b0316638c7a63ae876040518263ffffffff1660e01b8152600401610c73919061524f565b60a06040518083038186803b158015610c8b57600080fd5b505afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc3919061504c565b90506000610cd48260200151613713565b9050610ce28183898961375d565b9450945050505060c9805460ff1916600117905590939092509050565b6101c3546001600160a01b031681565b6101c35460408051632473794b60e11b815290516000926001600160a01b0316916348e6f296916004808301926020929190829003018186803b158015610d5557600080fd5b505afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906150c0565b905090565b600080610d9d614d98565b6101c554610db3906001600160a01b0316613708565b6001600160a01b0316638c7a63ae856040518263ffffffff1660e01b8152600401610dde919061524f565b60a06040518083038186803b158015610df657600080fd5b505afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e919061504c565b90506000610e3f8260200151613713565b90508060040154610e4e613906565b1115610e6957610e5e818361390a565b935093505050610e73565b6000809350935050505b915091565b610e80612cd4565b610e9c5760405162461bcd60e51b815260040161069c90615a39565b6101c554610eb2906001600160a01b0316613975565b6101c580546001600160a01b0319166001600160a01b039283161790556101c354604080516309f254e560e31b815290519190921691634f92a72891600480830192600092919082900301818387803b158015610f0e57600080fd5b505af1158015610f22573d6000803e3d6000fd5b50505050565b6101c554600090610f41906001600160a01b031661398d565b6001600160a01b031663d505accf333089898989896040518863ffffffff1660e01b8152600401610f78979695949392919061517f565b600060405180830381600087803b158015610f9257600080fd5b505af1158015610fa6573d6000803e3d6000fd5b50505050610fb48787612e80565b979650505050505050565b600054610100900460ff1680610fd85750610fd86131b2565b80610fe6575060005460ff16155b6110025760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff1615801561102d576000805460ff1961ff0019909116610100171660011790555b611035613239565b8015611047576000805461ff00191690555b50565b611052612cd4565b61106e5760405162461bcd60e51b815260040161069c90615a39565b6001600160a01b0381166110945760405162461bcd60e51b815260040161069c9061546a565b6101c3546101c5546001600160a01b03918216916000916110b591166133d6565b6001600160a01b03166370a08231836040518263ffffffff1660e01b81526004016110e0919061516b565b60206040518083038186803b1580156110f857600080fd5b505afa15801561110c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113091906150c0565b9050801561115a576101c55461115a90611152906001600160a01b03166133d6565b8385846134a2565b6101c354604051637d8b34e560e11b81526001600160a01b039091169063fb1669ca9061118c9060009060040161524f565b600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b50506101c3546040516327ea6f2b60e01b81526001600160a01b0390911692506327ea6f2b91506111f09060009060040161524f565b600060405180830381600087803b15801561120a57600080fd5b505af115801561121e573d6000803e3d6000fd5b50506101c380546001600160a01b0319166001600160a01b0387811691909117918290556040805163a4d66daf60e01b8152905192909116935063a4d66daf9250600480820192602092909190829003018186803b15801561127f57600080fd5b505afa158015611293573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b791906150c0565b506101c3546040516001600160a01b03918216918416907f987cdba0cba67c68d2c8aba6a4ba6545565eccfb3e2e5ff39579ffd94acaf9bb90600090a3505050565b60975460ff1690565b670de0b6b3a764000081565b6201518081565b6101c5546001600160a01b031681565b6101c35460408051637df1f1b960e01b815290516000926001600160a01b031691637df1f1b9916004808301926020929190829003018186803b15801561136b57600080fd5b505afa15801561137f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d9190614e8a565b6113bd600080516020615bdf8339815191526104f9613369565b6113d95760405162461bcd60e51b815260040161069c9061541e565b6106d06139a5565b6101c5546000906113fa906001600160a01b03166139fe565b6001600160a01b0316336001600160a01b03161461142a5760405162461bcd60e51b815260040161069c90615552565b6101d25460ff161561144e5760405162461bcd60e51b815260040161069c906155f7565b60006101c360009054906101000a90046001600160a01b03169050806001600160a01b031663fb1669ca896001600160a01b031663b69ef8a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156114b157600080fd5b505afa1580156114c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e991906150c0565b6040518263ffffffff1660e01b8152600401611505919061524f565b600060405180830381600087803b15801561151f57600080fd5b505af1158015611533573d6000803e3d6000fd5b50505050806001600160a01b03166396c8df37896001600160a01b03166321856b366040518163ffffffff1660e01b815260040160206040518083038186803b15801561157f57600080fd5b505afa158015611593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b791906150c0565b6040518263ffffffff1660e01b81526004016115d3919061524f565b600060405180830381600087803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b50505050806001600160a01b031663b3b8a9c7896001600160a01b031663193501146040518163ffffffff1660e01b815260040160206040518083038186803b15801561164d57600080fd5b505afa158015611661573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168591906150c0565b6040518263ffffffff1660e01b81526004016116a1919061524f565b600060405180830381600087803b1580156116bb57600080fd5b505af11580156116cf573d6000803e3d6000fd5b5050604051637ae14b0960e01b81526001600160a01b0384169250637ae14b0991506116ff908a9060040161524f565b600060405180830381600087803b15801561171957600080fd5b505af115801561172d573d6000803e3d6000fd5b5050604051631352074160e11b81526001600160a01b03841692506326a40e82915061175d90899060040161524f565b600060405180830381600087803b15801561177757600080fd5b505af115801561178b573d6000803e3d6000fd5b505060405163a6b1ae0d60e01b81526001600160a01b038416925063a6b1ae0d91506117bb90889060040161524f565b600060405180830381600087803b1580156117d557600080fd5b505af11580156117e9573d6000803e3d6000fd5b5050604051630db6452560e21b81526001600160a01b03841692506336d91494915061181990879060040161524f565b600060405180830381600087803b15801561183357600080fd5b505af1158015611847573d6000803e3d6000fd5b50505050806001600160a01b031663033669cf6118d58a6001600160a01b03166321856b366040518163ffffffff1660e01b815260040160206040518083038186803b15801561189657600080fd5b505afa1580156118aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ce91906150c0565b8690613a16565b6040518263ffffffff1660e01b81526004016118f1919061524f565b600060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b5050505061192d8884613a3b565b6101d2805460ff1916600117905590509695505050505050565b600054610100900460ff168061196057506119606131b2565b8061196e575060005460ff16155b61198a5760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff161580156119b5576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038916158015906119d557506001600160a01b03881615155b6119f15760405162461bcd60e51b815260040161069c90615505565b6101c580546001600160a01b0319166001600160a01b038b81169190911791829055600091611a209116613d94565b90506001600160a01b038116611a485760405162461bcd60e51b815260040161069c906155c0565b611a51816106d2565b6040805160a08101909152806001815260200160008152602001611a76600180612dc3565b815260006020808301829052604092830182905283516101c855838101516101c955838301516101ca5560608401516101cb556080909301516101cc55815160a08101835260028152928301528101611ad0600180612dc3565b81526000602080830182905260409283019190915282516101cd558201516101ce558101516101cf5560608101516101d055608001516101d155611b18898888888888613dac565b426101c4556101c6889055611b3b600080516020615bff8339815191528a610865565b611b53600080516020615bff83398151915282610865565b611b79600080516020615bff833981519152600080516020615bbf833981519152613354565b6101c554600090611b92906001600160a01b03166133d6565b6001600160a01b031663095ea7b3306000196040518363ffffffff1660e01b8152600401611bc19291906151c0565b602060405180830381600087803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c139190614fc4565b905080611c325760405162461bcd60e51b815260040161069c9061536a565b50508015611c46576000805461ff00191690555b505050505050505050565b600082815260656020526040812061065f9083613ece565b600082815260656020526040812061065f9083613eda565b6101c354604080516399dd8df360e01b815290516000926001600160a01b0316916399dd8df3916004808301926020929190829003018186803b158015610d5557600080fd5b828114611ce65760405162461bcd60e51b815260040161069c9061539a565b60005b81811015611d2957611d1f858583818110611d0057fe5b90506020020135848484818110611d1357fe5b90506020020135610b25565b5050600101611ce9565b5050505050565b611d48600080516020615bff83398151915233611c69565b611d645760405162461bcd60e51b815260040161069c90615728565b60975460ff1615611d875760405162461bcd60e51b815260040161069c906156c9565b6101c75460ff1615611dab5760405162461bcd60e51b815260040161069c9061586f565b611db3613eef565b611dbf57611dbf6135b3565b6101c35460405163a079a4dd60e01b81526001600160a01b039091169063a079a4dd90611df090849060040161524f565b600060405180830381600087803b158015611e0a57600080fd5b505af1158015611e1e573d6000803e3d6000fd5b505050506000611ebc6101c360009054906101000a90046001600160a01b03166001600160a01b031663b69ef8a86040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7657600080fd5b505afa158015611e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eae91906150c0565b611eb6613ef8565b90613f0d565b6101cf546101ca546040805160a0810182526101cd5481526101ce5460208201529081018390526101d05460608201526101d15460808201529293509091611f05908490613f4f565b6101cf556040805160a0810182526101c85481526101c95460208201526101ca54918101919091526101cb5460608201526101cc546080820152611f4a908490613f4f565b6101ca556101c35460408051637df1f1b960e01b815290516000926001600160a01b031691637df1f1b9916004808301926020929190829003018186803b158015611f9457600080fd5b505afa158015611fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fcc9190614e8a565b6101c554909150611ff190611fe9906001600160a01b03166133d6565b3083886134a2565b806001600160a01b03167f7411b87a3c039bdfd8f3510b21e8bd0736265f53513735e1f4aa7b4f306b728d8660405161202a919061524f565b60405180910390a26101cd546101cf5430907f42a55d7508b1c40b53524cf7cc2558b0f6bc7c4f262a3e929b65cd48bec2b687906120688782613f0d565b6101d054604051612080939260009081039291615b6a565b60405180910390a36101c8546101ca5430907f42a55d7508b1c40b53524cf7cc2558b0f6bc7c4f262a3e929b65cd48bec2b687906120be8682613f0d565b6101cb546040516120d6939260009081039291615b6a565b60405180910390a35050505050565b6120ed612cd4565b6121095760405162461bcd60e51b815260040161069c90615a39565b6001600160a01b03861661212f5760405162461bcd60e51b815260040161069c90615589565b8261214c5760405162461bcd60e51b815260040161069c906156f3565b816121695760405162461bcd60e51b815260040161069c9061596d565b6101c3546001600160a01b031680612185888888888888613dac565b6101c3546040516001600160a01b0391821691829182918616907f987cdba0cba67c68d2c8aba6a4ba6545565eccfb3e2e5ff39579ffd94acaf9bb90600090a3816001600160a01b031663fb1669ca846001600160a01b031663b69ef8a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561220d57600080fd5b505afa158015612221573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224591906150c0565b6040518263ffffffff1660e01b8152600401612261919061524f565b600060405180830381600087803b15801561227b57600080fd5b505af115801561228f573d6000803e3d6000fd5b50505050816001600160a01b03166396c8df37846001600160a01b03166321856b366040518163ffffffff1660e01b815260040160206040518083038186803b1580156122db57600080fd5b505afa1580156122ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231391906150c0565b6040518263ffffffff1660e01b815260040161232f919061524f565b600060405180830381600087803b15801561234957600080fd5b505af115801561235d573d6000803e3d6000fd5b50505050816001600160a01b031663b3b8a9c7846001600160a01b031663193501146040518163ffffffff1660e01b815260040160206040518083038186803b1580156123a957600080fd5b505afa1580156123bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e191906150c0565b6040518263ffffffff1660e01b81526004016123fd919061524f565b600060405180830381600087803b15801561241757600080fd5b505af115801561242b573d6000803e3d6000fd5b50505050816001600160a01b0316637ae14b09846001600160a01b03166364fb2d956040518163ffffffff1660e01b815260040160206040518083038186803b15801561247757600080fd5b505afa15801561248b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124af91906150c0565b6040518263ffffffff1660e01b81526004016124cb919061524f565b600060405180830381600087803b1580156124e557600080fd5b505af11580156124f9573d6000803e3d6000fd5b50505050816001600160a01b03166326a40e82846001600160a01b031663d28459776040518163ffffffff1660e01b815260040160206040518083038186803b15801561254557600080fd5b505afa158015612559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257d91906150c0565b6040518263ffffffff1660e01b8152600401612599919061524f565b600060405180830381600087803b1580156125b357600080fd5b505af11580156125c7573d6000803e3d6000fd5b50505050816001600160a01b031663a6b1ae0d846001600160a01b031663bbafcb406040518163ffffffff1660e01b815260040160206040518083038186803b15801561261357600080fd5b505afa158015612627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264b91906150c0565b6040518263ffffffff1660e01b8152600401612667919061524f565b600060405180830381600087803b15801561268157600080fd5b505af1158015612695573d6000803e3d6000fd5b50505050816001600160a01b03166336d91494846001600160a01b031663ce78290d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156126e157600080fd5b505afa1580156126f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271991906150c0565b6040518263ffffffff1660e01b8152600401612735919061524f565b600060405180830381600087803b15801561274f57600080fd5b505af1158015612763573d6000803e3d6000fd5b50505050816001600160a01b031663033669cf846001600160a01b0316631cd724ac6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127af57600080fd5b505afa1580156127c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e791906150c0565b6040518263ffffffff1660e01b8152600401612803919061524f565b600060405180830381600087803b15801561281d57600080fd5b505af1158015612831573d6000803e3d6000fd5b50506101c5546000925061284e91506001600160a01b03166133d6565b6001600160a01b03166370a08231866040518263ffffffff1660e01b8152600401612879919061516b565b60206040518083038186803b15801561289157600080fd5b505afa1580156128a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c991906150c0565b905080156128f3576101c5546128f3906128eb906001600160a01b03166133d6565b8684846134a2565b604051637d8b34e560e11b81526001600160a01b0385169063fb1669ca906129209060009060040161524f565b600060405180830381600087803b15801561293a57600080fd5b505af115801561294e573d6000803e3d6000fd5b50506040516327ea6f2b60e01b81526001600160a01b03871692506327ea6f2b915061297f9060009060040161524f565b600060405180830381600087803b15801561299957600080fd5b505af11580156129ad573d6000803e3d6000fd5b505050505050505050505050505050565b600081565b6101c3546040805163a4d66daf60e01b815290516000926001600160a01b03169163a4d66daf916004808301926020929190829003018186803b158015610d5557600080fd5b60975460ff1615612a2c5760405162461bcd60e51b815260040161069c906156c9565b6106d0613f74565b612a3c612cd4565b612a585760405162461bcd60e51b815260040161069c90615a39565b6101c7805460ff1916600117905560405130907f90d9b09c68a7e1312ce22801552b47265d77db9496383d51374b4058545447d790600090a2565b6101c55460009081908390612ab0906001600160a01b0316613708565b6001600160a01b031663430c208133836040518363ffffffff1660e01b8152600401612add9291906151c0565b60206040518083038186803b158015612af557600080fd5b505afa158015612b09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2d9190614fc4565b612b495760405162461bcd60e51b815260040161069c90615918565b60c95460ff16612b6b5760405162461bcd60e51b815260040161069c90615a02565b60c9805460ff1916905560975460ff1615612b985760405162461bcd60e51b815260040161069c906156c9565b612ba0614d98565b6101c554612bb6906001600160a01b0316613708565b6001600160a01b0316638c7a63ae866040518263ffffffff1660e01b8152600401612be1919061524f565b60a06040518083038186803b158015612bf957600080fd5b505afa158015612c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c31919061504c565b90506000612c428260200151613713565b9050600080612c51838561390a565b90925090506000612c628383613a16565b9050612c7084868b8461375d565b9750975050505050505060c9805460ff191660011790559092909150565b6101c354604080516359cb4cc960e11b815290516000926001600160a01b03169163b3969992916004808301926020929190829003018186803b158015610d5557600080fd5b6000610d8d600080516020615bbf8339815191526104f9613369565b612cf8612cd4565b612d145760405162461bcd60e51b815260040161069c90615a39565b6101c7805460ff1916905560405130907f7184039938737267597232635b117c924371ac877d4329f2dfa5ca674c5cc4a590600090a2565b606481565b60975460ff1615612d745760405162461bcd60e51b815260040161069c906156c9565b60008111612d945760405162461bcd60e51b815260040161069c9061599d565b612d9d8161411f565b611047613f74565b6101c65481565b600081815260656020526040812061066290614180565b60008115612de657612de18261065985670de0b6b3a76400006130c2565b61065f565b50600092915050565b6101c45481565b600082815260656020526040902060020154612e14906104f9613369565b610a7e5760405162461bcd60e51b815260040161069c9061564e565b612e38614dd0565b612e4182613713565b6040805160a081018252825481526001830154602082015260028301549181019190915260038201546060820152600490910154608082015292915050565b60c95460009060ff16612ea55760405162461bcd60e51b815260040161069c90615a02565b60c9805460ff1916905560975460ff1615612ed25760405162461bcd60e51b815260040161069c906156c9565b6000612edd84613713565b90508060040154600014612f035760405162461bcd60e51b815260040161069c906157ea565b6001810154612f129084613a16565b6001820155612f1f614dff565b5060408051808201909152838152602081018590526101c554612f4a906001600160a01b0316613708565b6001600160a01b0316635be57b6a82336040518363ffffffff1660e01b8152600401612f77929190615b0a565b602060405180830381600087803b158015612f9157600080fd5b505af1158015612fa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fc991906150c0565b6101c554909350612fee90612fe6906001600160a01b03166133d6565b3330876134a2565b8285336001600160a01b03167fcb3ef4109dcd006671348924f00aac8398190a5ff283d6e470d74581513e103687604051613029919061524f565b60405180910390a4505060c9805460ff1916600117905592915050565b600080516020615bbf83398151915281565b600080516020615bdf83398151915281565b6101c354604080516378592def60e11b815290516000926001600160a01b03169163f0b25bde916004808301926020929190829003018186803b158015610d5557600080fd5b600080516020615bff83398151915281565b6000826130d157506000610662565b828202828482816130de57fe5b041461065f5760405162461bcd60e51b815260040161069c906157a9565b600061065f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061418b565b613146613eef565b156131635760405162461bcd60e51b815260040161069c90615621565b6101d154156131845760405162461bcd60e51b815260040161069c90615a84565b6101c5546131ac9061319e906001600160a01b03166141c2565b6131a6613906565b90613a16565b6101d155565b303b1590565b600054610100900460ff16806131d157506131d16131b2565b806131df575060005460ff16155b6131fb5760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff16158015611035576000805460ff1961ff0019909116610100171660011790558015611047576000805461ff001916905550565b600054610100900460ff168061325257506132526131b2565b80613260575060005460ff16155b61327c5760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff161580156132a7576000805460ff1961ff0019909116610100171660011790555b6097805460ff191690558015611047576000805461ff001916905550565b600054610100900460ff16806132de57506132de6131b2565b806132ec575060005460ff16155b6133085760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff16158015613333576000805460ff1961ff0019909116610100171660011790555b60c9805460ff191660011790558015611047576000805461ff001916905550565b60009182526065602052604090912060020155565b3390565b60008281526065602052604090206133859082614242565b156107fe57613392613369565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006106628261398d565b60006001600160a01b03821663b93f9b0a60065b6040518263ffffffff1660e01b8152600401613411919061524f565b60206040518083038186803b15801561342957600080fd5b505afa15801561343d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106629190614e8a565b61349d8383836040518060400160405280601881526020017704661696c656420746f207472616e736665722045524332360441b815250614257565b505050565b60408051808201909152601881527704661696c656420746f207472616e736665722045524332360441b6020820152611d298585858585614329565b60008281526065602052604090206134f690826143fe565b156107fe57613503613369565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60975460ff166135695760405162461bcd60e51b815260040161069c9061533c565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61359c613369565b6040516135a9919061516b565b60405180910390a1565b6101d1546135d35760405162461bcd60e51b815260040161069c906158d5565b6101c3546001600160a01b03166327ea6f2b61367c6135f0613ef8565b6101c360009054906101000a90046001600160a01b03166001600160a01b031663a4d66daf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561363f57600080fd5b505afa158015613653573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061367791906150c0565b614413565b6040518263ffffffff1660e01b8152600401613698919061524f565b600060405180830381600087803b1580156136b257600080fd5b505af11580156136c6573d6000803e3d6000fd5b50506101c554600092506136e391506001600160a01b03166141c2565b90506136f1816131a6613906565b6101cc55613701816131a6613906565b6101d15550565b600061066282614429565b600060018214806137245750600282145b6137405760405162461bcd60e51b815260040161069c906154d8565b600060018314613752576101cd613756565b6101c85b9392505050565b60008060008061376d888861390a565b9092509050600061377e8383613a16565b9050808611156137a05760405162461bcd60e51b815260040161069c906158a6565b88600401546137ad613906565b116137ca5760405162461bcd60e51b815260040161069c9061569e565b60048901546137e85760018901546137e29087613f0d565b60018a01555b60006137f48488614413565b90506000613806846136778a85613f0d565b6101c55490915061381f906001600160a01b0316613708565b6001600160a01b031663b81922058a83856040518463ffffffff1660e01b815260040161384e93929190615b93565b600060405180830381600087803b15801561386857600080fd5b505af115801561387c573d6000803e3d6000fd5b50506101c5546138ab925061389a91506001600160a01b03166133d6565b30336138a68587613a16565b6134a2565b888a60200151336001600160a01b03167f92f2787b755dae547f1701582fe74c7abf277ec14db316dd01abc69cacf7a25985856040516138ec929190615b85565b60405180910390a490955093505050505b94509492505050565b4290565b600080600061392185600201548560400151610641565b9050600061393786600301548660400151610641565b9050613950856080015182613f0d90919063ffffffff16565b9350613969856060015183613f0d90919063ffffffff16565b925050505b9250929050565b60006001600160a01b03821663b93f9b0a600b6133f5565b60006001600160a01b03821663b93f9b0a60056133f5565b60975460ff16156139c85760405162461bcd60e51b815260040161069c906156c9565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861359c613369565b60006001600160a01b03821663b93f9b0a60036133f5565b60008282018381101561065f5760405162461bcd60e51b815260040161069c906154a1565b613a43613eef565b15613a605760405162461bcd60e51b815260040161069c906159d4565b60026000613a6d82613713565b90508060040154600014613a935760405162461bcd60e51b815260040161069c906157ea565b836001600160a01b031663a4d66daf6040518163ffffffff1660e01b815260040160206040518083038186803b158015613acc57600080fd5b505afa158015613ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0491906150c0565b6001820155613b11614dff565b506040805180820190915260018201548152602081018390526101c554600090613b43906001600160a01b0316613708565b6101c5549091506000906001600160a01b0380841691635be57b6a918691613b6b9116614441565b6040518363ffffffff1660e01b8152600401613b88929190615b0a565b602060405180830381600087803b158015613ba257600080fd5b505af1158015613bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bda91906150c0565b90506000613cef6101c360009054906101000a90046001600160a01b03166001600160a01b031663b69ef8a86040518163ffffffff1660e01b815260040160206040518083038186803b158015613c3057600080fd5b505afa158015613c44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c6891906150c0565b6101c360009054906101000a90046001600160a01b03166001600160a01b031663a4d66daf6040518163ffffffff1660e01b815260040160206040518083038186803b158015613cb757600080fd5b505afa158015613ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb691906150c0565b9050613cf961313e565b613d016135b3565b60001942016101d15560405163b819220560e01b81526001600160a01b0384169063b819220590613d3a90859085908c90600401615b93565b600060405180830381600087803b158015613d5457600080fd5b505af1158015613d68573d6000803e3d6000fd5b505060006101cf8190556101ca5550613d889050878281816101cd614459565b50505050505050505050565b60006001600160a01b03821663b93f9b0a60076133f5565b6101c554600090613dc5906001600160a01b0316614510565b6001600160a01b03166301b215516040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613dff57600080fd5b505af1158015613e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e379190614e8a565b6101c380546001600160a01b0319166001600160a01b0383811691909117918290556101c554604051630df8fa4360e41b81529394509181169263df8fa43092613e9392169030908c908c908c908c908c908c906004016151d9565b600060405180830381600087803b158015613ead57600080fd5b505af1158015613ec1573d6000803e3d6000fd5b5050505050505050505050565b600061065f838361451b565b600061065f836001600160a01b038416614560565b6101cc54151590565b6101c9546101ce54600091610d8d9190613a16565b600061065f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614578565b600080613f60848460200151612dc3565b9050613f6c81846145a4565b949350505050565b60008060006101c360009054906101000a90046001600160a01b03166001600160a01b031663a6a25e886040518163ffffffff1660e01b8152600401606060405180830381600087803b158015613fca57600080fd5b505af1158015613fde573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061400291906150d8565b92509250925060008211806140175750600081115b1561349d576101c354600090614040906001600160a01b03168461403b8588613a16565b6145cb565b9050306001600160a01b03166101c360009054906101000a90046001600160a01b03166001600160a01b0316637df1f1b96040518163ffffffff1660e01b815260040160206040518083038186803b15801561409b57600080fd5b505afa1580156140af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140d39190614e8a565b6001600160a01b03167fd1055dc2c2a003a83dfacb1c38db776eab5ef89d77a8f05a3512e8cf57f953ce858588866040516141119493929190615b6a565b60405180910390a350505050565b6101c55461104790614139906001600160a01b03166133d6565b6101c35460408051808201909152601981527811985a5b1959081d1bc818dbdb1b1958dd081c185e5b595b9d603a1b602082015233916001600160a01b0316908590614329565b60006106628261484e565b600081836141ac5760405162461bcd60e51b815260040161069c9190615258565b5060008385816141b857fe5b0495945050505050565b60006001600160a01b03821663fc56365860075b6040518263ffffffff1660e01b81526004016141f2919061524f565b60206040518083038186803b15801561420a57600080fd5b505afa15801561421e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066291906150c0565b600061065f836001600160a01b038416614852565b6001600160a01b03831661427d5760405162461bcd60e51b815260040161069c906153e7565b60405163a9059cbb60e01b81526000906001600160a01b0386169063a9059cbb906142ae90879087906004016151c0565b602060405180830381600087803b1580156142c857600080fd5b505af11580156142dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143009190614fc4565b905081816143215760405162461bcd60e51b815260040161069c9190615258565b505050505050565b6001600160a01b03831661434f5760405162461bcd60e51b815260040161069c906153e7565b6040516323b872dd60e01b81526000906001600160a01b038716906323b872dd9061438290889088908890600401615220565b602060405180830381600087803b15801561439c57600080fd5b505af11580156143b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143d49190614fc4565b905081816143f55760405162461bcd60e51b815260040161069c9190615258565b50505050505050565b600061065f836001600160a01b03841661489c565b6000818310614422578161065f565b5090919050565b60006001600160a01b03821663b93f9b0a600c6133f5565b60006001600160a01b03821663b93f9b0a600e6133f5565b60008060008360010154905060006144778986600301548985614962565b600387018054908290556002880154929b509092509061449a908a908986614962565b600288018054908290558854929b5090935090307f42a55d7508b1c40b53524cf7cc2558b0f6bc7c4f262a3e929b65cd48bec2b687856144da8186613f0d565b60038c01546144e98189613f0d565b6040516144f99493929190615b6a565b60405180910390a350989997985050505050505050565b6000610662826149bb565b8154600090821061453e5760405162461bcd60e51b815260040161069c906152ab565b82600001828154811061454d57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b6000818484111561459c5760405162461bcd60e51b815260040161069c9190615258565b505050900390565b6101c9546101ce5460009182916145ba91613a16565b9050613f6c848460200151836149d3565b6101c55460009061462b906145e8906001600160a01b03166133d6565b85306145f48688613a16565b6040518060400160405280601981526020017811985a5b1959081d1bc818dbdb1b1958dd081c185e5b595b9d603a1b815250614329565b600080614636614a2c565b6101c554919350915060009061466090614658906001600160a01b0316614ba3565b6064906130fc565b6040805160a0810182526101c85481526101c95460208201526101ca54918101919091526101cb5460608201526101cc546080820152909150869086906000906146ab908790613f4f565b6040805160a0810182526101c85481526101c95460208201526101ca54918101919091526101cb5460608201526101cc5460808201529091506000906146f2908790613f4f565b905060006147228361471b614713896101c654613a1690919063ffffffff16565b606490613f0d565b60646149d3565b90506000614732868860646149d3565b905061473e8a82613a16565b995061474a8682613f0d565b955061475b868684866101c8614bbb565b6101ce54919750955061477d90614773908890612dc3565b6101d05490613a16565b6040805160a0810182526101cd5481526101ce5460208201526101cf54918101919091526101d05460608201526101d15460808201529094506147c1908990613f4f565b92506147d2868686866101cd614bbb565b90965094506147e18686613a16565b95506147ef858860646149d3565b90506147fb8a82613a16565b99506148078682613f0d565b95506000945061483061481a8787613a16565b60006148268989613a16565b60006101cd614459565b909650945061483e8a614c41565b5050505050505050509392505050565b5490565b600061485e8383614560565b61489457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610662565b506000610662565b6000818152600183016020526040812054801561495857835460001980830191908101906000908790839081106148cf57fe5b90600052602060002001549050808760000184815481106148ec57fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061491c57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610662565b6000915050610662565b600080851580614970575083155b1561497f5750849050836138fd565b8386101561498b578593505b60006149978585612dc3565b90506149a38786613f0d565b6149ad8783613a16565b925092505094509492505050565b60006001600160a01b03821663b93f9b0a60026133f5565b60006149dd614e19565b6149e683614cf0565b90506149f0614e19565b6149f985614cf0565b9050614a21670de0b6b3a7640000614a1b88614a158587614d1e565b90614d56565b90614d77565b519695505050505050565b6000806101c360009054906101000a90046001600160a01b03166001600160a01b0316631cd724ac6040518163ffffffff1660e01b815260040160206040518083038186803b158015614a7e57600080fd5b505afa158015614a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ab691906150c0565b91506101c360009054906101000a90046001600160a01b03166001600160a01b031663193501146040518163ffffffff1660e01b815260040160206040518083038186803b158015614b0757600080fd5b505afa158015614b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b3f91906150c0565b9050614b9d614b966101c360009054906101000a90046001600160a01b03166001600160a01b031663b69ef8a86040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7657600080fd5b8290613a16565b90509091565b60006001600160a01b03821663fc56365860036141d6565b60018101546002820154600091829180861015614bd6578095505b600385015480881015614be7578097505b6000614bf38983613f0d565b90506000614c018286610641565b90506000614c0f8a86613f0d565b90506000614c1d8288610641565b9050614c2c8e8e85848e614459565b909f909e509c50505050505050505050505050565b306001600160a01b03167ff3583f178a8d4f8888c3683f8e948faf9b6eb701c4f1fab265a6ecad1a1ddebb82604051614c7a919061524f565b60405180910390a26101c55461104790614c9c906001600160a01b03166133d6565b6101c5543090614cb4906001600160a01b03166133e1565b846040518060400160405280601981526020017f4661696c656420746f2073656e6420746f207265736572766500000000000000815250614329565b614cf8614e19565b604080516020810190915280614d1684670de0b6b3a76400006130c2565b905292915050565b614d26614e19565b6040805160208101909152825184518291614d4d9161065990670de0b6b3a76400006130c2565b90529392505050565b614d5e614e19565b604080516020810190915283518190614d4d90856130c2565b614d7f614e19565b604080516020810190915283518190614d4d90856130fc565b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6040518060200160405280600081525090565b60008083601f840112614e3d578182fd5b50813567ffffffffffffffff811115614e54578182fd5b602083019150836020808302850101111561396e57600080fd5b600060208284031215614e7f578081fd5b813561065f81615ba9565b600060208284031215614e9b578081fd5b815161065f81615ba9565b600080600080600080600080610100898b031215614ec2578384fd5b8835614ecd81615ba9565b97506020890135614edd81615ba9565b979a9799505050506040860135956060810135956080820135955060a0820135945060c0820135935060e0909101359150565b60008060008060008060c08789031215614f28578182fd5b8635614f3381615ba9565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b60008060008060408587031215614f70578384fd5b843567ffffffffffffffff80821115614f87578586fd5b614f9388838901614e2c565b90965094506020870135915080821115614fab578384fd5b50614fb887828801614e2c565b95989497509550505050565b600060208284031215614fd5578081fd5b8151801515811461065f578182fd5b600060208284031215614ff5578081fd5b5035919050565b6000806040838503121561500e578182fd5b82359150602083013561502081615ba9565b809150509250929050565b6000806040838503121561503d578182fd5b50508035926020909101359150565b600060a0828403121561505d578081fd5b60405160a0810181811067ffffffffffffffff8211171561507c578283fd5b604052825161508a81615ba9565b80825250602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6000602082840312156150d1578081fd5b5051919050565b6000806000606084860312156150ec578081fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561511d578384fd5b863595506020870135945060408701359350606087013560ff81168114615142578283fd5b9598949750929560808101359460a0909101359350915050565b80518252602090810151910152565b6001600160a01b0391909116815260200190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03988916815296881660208801529490961660408601526060850192909252608084015260a083015260c082019290925260e08101919091526101000190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b90815260200190565b6000602080835283518082850152825b8181101561528457858101830151858201604001528201615268565b818111156152955783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252601690820152754661696c656420746f20617070726f7665205553444360501b604082015260600190565b6020808252602d908201527f546f6b656e7349647320616e6420416d6f756e7473206d75737420626520746860408201526c0ca40e6c2daca40d8cadccee8d609b1b606082015260800190565b6020808252601a908201527f43616e27742073656e6420746f207a65726f2061646472657373000000000000604082015260600190565b6020808252602c908201527f4d75737420686176652070617573657220726f6c6520746f20706572666f726d60408201526b103a3434b99030b1ba34b7b760a11b606082015260800190565b6020808252601a908201527f4372656469746c696e652063616e6e6f7420626520656d707479000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b602080825260139082015272556e737570706f72746564207472616e63686560681b604082015260600190565b6020808252602d908201527f436f6e66696720616e6420626f72726f7765722061646472657373657320636160408201526c6e6e6f7420626520656d70747960981b606082015260800190565b6020808252601e908201527f4f6e6c7920637265646974206465736b2063616e2063616c6c20746869730000604082015260600190565b6020808252601a908201527f426f72726f776572206d757374206e6f7420626520656d707479000000000000604082015260600190565b6020808252601d908201527f4f776e657220616464726573732063616e6e6f7420626520656d707479000000604082015260600190565b60208082526010908201526f105b1c9958591e481b5a59dc985d195960821b604082015260600190565b602080825260139082015272141bdbdb08185b1c9958591e481b1bd8dad959606a1b604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b602080825260119082015270151c985b98da19481a5cc81b1bd8dad959607a1b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252818101527f5061796d656e7420706572696f64206d757374206e6f7420626520656d707479604082015260600190565b6020808252602c908201527f4d7573742068617665206c6f636b657220726f6c6520746f20706572666f726d60408201526b103a3434b99030b1ba34b7b760a11b606082015260800190565b6020808252818101527f4f776e65722063616e6e6f7420626520746865207a65726f2061646472657373604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526017908201527f5472616e63686520686173206265656e206c6f636b6564000000000000000000604082015260600190565b6020808252602e908201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560408201526d195b881a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601e908201527f44726177646f776e73206172652063757272656e746c79207061757365640000604082015260600190565b602080825260159082015274125b9d985b1a59081c995919595b48185b5bdd5b9d605a1b604082015260600190565b60208082526023908201527f4a756e696f72207472616e636865206d757374206265206c6f636b65642066696040820152621c9cdd60ea1b606082015260800190565b60208082526035908201527f4f6e6c792074686520746f6b656e206f776e657220697320616c6c6f776564206040820152743a379031b0b636103a3434b990333ab731ba34b7b760591b606082015260800190565b6020808252601690820152755465726d206d757374206e6f7420626520656d70747960501b604082015260600190565b60208082526017908201527f4d75737420706179206d6f7265207468616e207a65726f000000000000000000604082015260600190565b602080825260149082015273141bdbdb081a185cc81899595b881b1bd8dad95960621b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252602b908201527f4d75737420686176652061646d696e20726f6c6520746f20706572666f726d2060408201526a3a3434b99030b1ba34b7b760a91b606082015260800190565b6020808252601d908201527f4a756e696f72207472616e63686520616c7265616479206c6f636b6564000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60608101615b18828561515c565b6001600160a01b039290921660409190910152919050565b600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b93845260208401929092526040830152606082015260800190565b918252602082015260400190565b9283526020830191909152604082015260600190565b6001600160a01b038116811461104757600080fdfeb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aaf9a8bb3cbd6b84fbccefa71ff73e26e798553c6914585a84886212a46a90279a2646970667358221220f21929af0f55a8aa725e56cfb1850a6cb4c754f8f75b561b008df7d80e060e6264736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106103425760003560e01c80639010d07c116101b8578063bf6c87c711610104578063d547741f116100a2578063e58378bb1161007c578063e58378bb14610621578063e63ab1e914610629578063f0b25bde14610631578063f36213671461063957610342565b8063d547741f146105db578063d972e8ad146105ee578063e2bbb1581461060e57610342565b8063c77d5698116100de578063c77d5698146105a5578063ca15c873146105ad578063cde88845146105c0578063cf09e0d0146105d357610342565b8063bf6c87c714610582578063bfaa8cca1461058a578063c290d6911461059257610342565b8063a217fddf11610171578063a8f9c4fe1161014b578063a8f9c4fe14610557578063aa2a7c4c1461055f578063b396999214610572578063b6db75a01461057a57610342565b8063a217fddf1461053f578063a4d66daf14610547578063a6a25e881461054f57610342565b80639010d07c146104d857806391d14854146104eb57806399dd8df3146104fe5780639d11053014610506578063a079a4dd14610519578063a18d41761461052c57610342565b806348e6f2961161029257806368dcfdc0116102305780637df1f1b91161020a5780637df1f1b9146104a25780638456cb59146104aa578063895465d1146104b25780638ba796af146104c557610342565b806368dcfdc01461048a57806374f0314f1461049257806379502c551461049a57610342565b8063515bc3231161026c578063515bc32314610454578063526d81f61461046757806356ce15601461046f5780635c975abb1461048257610342565b806348e6f296146104315780634d02fe6f146104395780634f92a7281461044c57610342565b80632f2ff15d116102ff5780633f4ba83a116102d95780633f4ba83a146103eb5780634026478e146103f3578063441a3e70146103fb57806347195e131461041c57610342565b80632f2ff15d146103bd5780633403c2fc146103d057806336568abe146103d857610342565b80630174b449146103475780630881806c14610370578063097616a31461037a57806317f769411461038d578063248a9ca3146103a25780632c678c64146103b5575b600080fd5b61035a61035536600461502b565b610641565b604051610367919061524f565b60405180910390f35b610378610668565b005b610378610388366004614e6e565b6106d2565b610395610802565b6040516103679190615244565b61035a6103b0366004614fe4565b61080c565b610395610821565b6103786103cb366004614ffc565b61082b565b61037861086f565b6103786103e6366004614ffc565b610a46565b610378610a88565b610378610ac6565b61040e61040936600461502b565b610b25565b604051610367929190615b85565b610424610cff565b604051610367919061516b565b61035a610d0f565b61040e610447366004614fe4565b610d92565b610378610e78565b61035a610462366004615105565b610f28565b610378610fbf565b61037861047d366004614e6e565b61104a565b6103956112f9565b61035a611302565b61035a61130e565b610424611315565b610424611325565b6103786113a3565b6104246104c0366004614f10565b6113e1565b6103786104d3366004614ea6565b611947565b6104246104e636600461502b565b611c51565b6103956104f9366004614ffc565b611c69565b61035a611c81565b610378610514366004614f5b565b611cc7565b610378610527366004614fe4565b611d30565b61037861053a366004614f10565b6120e5565b61035a6129be565b61035a6129c3565b610378612a09565b610378612a34565b61040e61056d366004614fe4565b612a93565b61035a612c8e565b610395612cd4565b610378612cf0565b61035a612d4c565b6103786105a0366004614fe4565b612d51565b61035a612da5565b61035a6105bb366004614fe4565b612dac565b61035a6105ce36600461502b565b612dc3565b61035a612def565b6103786105e9366004614ffc565b612df6565b6106016105fc366004614fe4565b612e30565b6040516103679190615b30565b61035a61061c36600461502b565b612e80565b61035a613046565b61035a613058565b61035a61306a565b61035a6130b0565b600061065f670de0b6b3a764000061065985856130c2565b906130fc565b90505b92915050565b610680600080516020615bff83398151915233611c69565b6106a55760405162461bcd60e51b815260040161069c90615728565b60405180910390fd5b60975460ff16156106c85760405162461bcd60e51b815260040161069c906156c9565b6106d061313e565b565b600054610100900460ff16806106eb57506106eb6131b2565b806106f9575060005460ff16155b6107155760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff16158015610740576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166107665760405162461bcd60e51b815260040161069c90615774565b61076e6131b8565b610776613239565b61077e6132c5565b610796600080516020615bbf83398151915283610865565b6107ae600080516020615bdf83398151915283610865565b6107d4600080516020615bdf833981519152600080516020615bbf833981519152613354565b6107ec600080516020615bbf83398151915280613354565b80156107fe576000805461ff00191690555b5050565b6101c75460ff1681565b60009081526065602052604090206002015490565b6101d25460ff1681565b600082815260656020526040902060020154610849906104f9613369565b6108655760405162461bcd60e51b815260040161069c906152ed565b6107fe828261336d565b610877612cd4565b6108935760405162461bcd60e51b815260040161069c90615a39565b61089b6112f9565b6108a7576108a76113a3565b6101c5546000906108c0906001600160a01b03166133d6565b6101c5549091506000906108dc906001600160a01b03166133e1565b90506000826001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161090c919061516b565b60206040518083038186803b15801561092457600080fd5b505afa158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c91906150c0565b9050801561096f5761096f838383613461565b6101c3546040516370a0823160e01b81526000916001600160a01b03808716926370a08231926109a392169060040161516b565b60206040518083038186803b1580156109bb57600080fd5b505afa1580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f391906150c0565b90508015610a15576101c354610a159085906001600160a01b031685846134a2565b60405130907f1fc1e771236d2e93bb9541cdcb4654ba0fd3fb615b48d829b7b365f03998512690600090a250505050565b610a4e613369565b6001600160a01b0316816001600160a01b031614610a7e5760405162461bcd60e51b815260040161069c90615abb565b6107fe82826134de565b610aa2600080516020615bdf8339815191526104f9613369565b610abe5760405162461bcd60e51b815260040161069c9061541e565b6106d0613547565b610ade600080516020615bff83398151915233611c69565b610afa5760405162461bcd60e51b815260040161069c90615728565b60975460ff1615610b1d5760405162461bcd60e51b815260040161069c906156c9565b6106d06135b3565b6101c55460009081908490610b42906001600160a01b0316613708565b6001600160a01b031663430c208133836040518363ffffffff1660e01b8152600401610b6f9291906151c0565b60206040518083038186803b158015610b8757600080fd5b505afa158015610b9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbf9190614fc4565b610bdb5760405162461bcd60e51b815260040161069c90615918565b60c95460ff16610bfd5760405162461bcd60e51b815260040161069c90615a02565b60c9805460ff1916905560975460ff1615610c2a5760405162461bcd60e51b815260040161069c906156c9565b610c32614d98565b6101c554610c48906001600160a01b0316613708565b6001600160a01b0316638c7a63ae876040518263ffffffff1660e01b8152600401610c73919061524f565b60a06040518083038186803b158015610c8b57600080fd5b505afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc3919061504c565b90506000610cd48260200151613713565b9050610ce28183898961375d565b9450945050505060c9805460ff1916600117905590939092509050565b6101c3546001600160a01b031681565b6101c35460408051632473794b60e11b815290516000926001600160a01b0316916348e6f296916004808301926020929190829003018186803b158015610d5557600080fd5b505afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906150c0565b905090565b600080610d9d614d98565b6101c554610db3906001600160a01b0316613708565b6001600160a01b0316638c7a63ae856040518263ffffffff1660e01b8152600401610dde919061524f565b60a06040518083038186803b158015610df657600080fd5b505afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e919061504c565b90506000610e3f8260200151613713565b90508060040154610e4e613906565b1115610e6957610e5e818361390a565b935093505050610e73565b6000809350935050505b915091565b610e80612cd4565b610e9c5760405162461bcd60e51b815260040161069c90615a39565b6101c554610eb2906001600160a01b0316613975565b6101c580546001600160a01b0319166001600160a01b039283161790556101c354604080516309f254e560e31b815290519190921691634f92a72891600480830192600092919082900301818387803b158015610f0e57600080fd5b505af1158015610f22573d6000803e3d6000fd5b50505050565b6101c554600090610f41906001600160a01b031661398d565b6001600160a01b031663d505accf333089898989896040518863ffffffff1660e01b8152600401610f78979695949392919061517f565b600060405180830381600087803b158015610f9257600080fd5b505af1158015610fa6573d6000803e3d6000fd5b50505050610fb48787612e80565b979650505050505050565b600054610100900460ff1680610fd85750610fd86131b2565b80610fe6575060005460ff16155b6110025760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff1615801561102d576000805460ff1961ff0019909116610100171660011790555b611035613239565b8015611047576000805461ff00191690555b50565b611052612cd4565b61106e5760405162461bcd60e51b815260040161069c90615a39565b6001600160a01b0381166110945760405162461bcd60e51b815260040161069c9061546a565b6101c3546101c5546001600160a01b03918216916000916110b591166133d6565b6001600160a01b03166370a08231836040518263ffffffff1660e01b81526004016110e0919061516b565b60206040518083038186803b1580156110f857600080fd5b505afa15801561110c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113091906150c0565b9050801561115a576101c55461115a90611152906001600160a01b03166133d6565b8385846134a2565b6101c354604051637d8b34e560e11b81526001600160a01b039091169063fb1669ca9061118c9060009060040161524f565b600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b50506101c3546040516327ea6f2b60e01b81526001600160a01b0390911692506327ea6f2b91506111f09060009060040161524f565b600060405180830381600087803b15801561120a57600080fd5b505af115801561121e573d6000803e3d6000fd5b50506101c380546001600160a01b0319166001600160a01b0387811691909117918290556040805163a4d66daf60e01b8152905192909116935063a4d66daf9250600480820192602092909190829003018186803b15801561127f57600080fd5b505afa158015611293573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b791906150c0565b506101c3546040516001600160a01b03918216918416907f987cdba0cba67c68d2c8aba6a4ba6545565eccfb3e2e5ff39579ffd94acaf9bb90600090a3505050565b60975460ff1690565b670de0b6b3a764000081565b6201518081565b6101c5546001600160a01b031681565b6101c35460408051637df1f1b960e01b815290516000926001600160a01b031691637df1f1b9916004808301926020929190829003018186803b15801561136b57600080fd5b505afa15801561137f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d9190614e8a565b6113bd600080516020615bdf8339815191526104f9613369565b6113d95760405162461bcd60e51b815260040161069c9061541e565b6106d06139a5565b6101c5546000906113fa906001600160a01b03166139fe565b6001600160a01b0316336001600160a01b03161461142a5760405162461bcd60e51b815260040161069c90615552565b6101d25460ff161561144e5760405162461bcd60e51b815260040161069c906155f7565b60006101c360009054906101000a90046001600160a01b03169050806001600160a01b031663fb1669ca896001600160a01b031663b69ef8a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156114b157600080fd5b505afa1580156114c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e991906150c0565b6040518263ffffffff1660e01b8152600401611505919061524f565b600060405180830381600087803b15801561151f57600080fd5b505af1158015611533573d6000803e3d6000fd5b50505050806001600160a01b03166396c8df37896001600160a01b03166321856b366040518163ffffffff1660e01b815260040160206040518083038186803b15801561157f57600080fd5b505afa158015611593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b791906150c0565b6040518263ffffffff1660e01b81526004016115d3919061524f565b600060405180830381600087803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b50505050806001600160a01b031663b3b8a9c7896001600160a01b031663193501146040518163ffffffff1660e01b815260040160206040518083038186803b15801561164d57600080fd5b505afa158015611661573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168591906150c0565b6040518263ffffffff1660e01b81526004016116a1919061524f565b600060405180830381600087803b1580156116bb57600080fd5b505af11580156116cf573d6000803e3d6000fd5b5050604051637ae14b0960e01b81526001600160a01b0384169250637ae14b0991506116ff908a9060040161524f565b600060405180830381600087803b15801561171957600080fd5b505af115801561172d573d6000803e3d6000fd5b5050604051631352074160e11b81526001600160a01b03841692506326a40e82915061175d90899060040161524f565b600060405180830381600087803b15801561177757600080fd5b505af115801561178b573d6000803e3d6000fd5b505060405163a6b1ae0d60e01b81526001600160a01b038416925063a6b1ae0d91506117bb90889060040161524f565b600060405180830381600087803b1580156117d557600080fd5b505af11580156117e9573d6000803e3d6000fd5b5050604051630db6452560e21b81526001600160a01b03841692506336d91494915061181990879060040161524f565b600060405180830381600087803b15801561183357600080fd5b505af1158015611847573d6000803e3d6000fd5b50505050806001600160a01b031663033669cf6118d58a6001600160a01b03166321856b366040518163ffffffff1660e01b815260040160206040518083038186803b15801561189657600080fd5b505afa1580156118aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ce91906150c0565b8690613a16565b6040518263ffffffff1660e01b81526004016118f1919061524f565b600060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b5050505061192d8884613a3b565b6101d2805460ff1916600117905590509695505050505050565b600054610100900460ff168061196057506119606131b2565b8061196e575060005460ff16155b61198a5760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff161580156119b5576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038916158015906119d557506001600160a01b03881615155b6119f15760405162461bcd60e51b815260040161069c90615505565b6101c580546001600160a01b0319166001600160a01b038b81169190911791829055600091611a209116613d94565b90506001600160a01b038116611a485760405162461bcd60e51b815260040161069c906155c0565b611a51816106d2565b6040805160a08101909152806001815260200160008152602001611a76600180612dc3565b815260006020808301829052604092830182905283516101c855838101516101c955838301516101ca5560608401516101cb556080909301516101cc55815160a08101835260028152928301528101611ad0600180612dc3565b81526000602080830182905260409283019190915282516101cd558201516101ce558101516101cf5560608101516101d055608001516101d155611b18898888888888613dac565b426101c4556101c6889055611b3b600080516020615bff8339815191528a610865565b611b53600080516020615bff83398151915282610865565b611b79600080516020615bff833981519152600080516020615bbf833981519152613354565b6101c554600090611b92906001600160a01b03166133d6565b6001600160a01b031663095ea7b3306000196040518363ffffffff1660e01b8152600401611bc19291906151c0565b602060405180830381600087803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c139190614fc4565b905080611c325760405162461bcd60e51b815260040161069c9061536a565b50508015611c46576000805461ff00191690555b505050505050505050565b600082815260656020526040812061065f9083613ece565b600082815260656020526040812061065f9083613eda565b6101c354604080516399dd8df360e01b815290516000926001600160a01b0316916399dd8df3916004808301926020929190829003018186803b158015610d5557600080fd5b828114611ce65760405162461bcd60e51b815260040161069c9061539a565b60005b81811015611d2957611d1f858583818110611d0057fe5b90506020020135848484818110611d1357fe5b90506020020135610b25565b5050600101611ce9565b5050505050565b611d48600080516020615bff83398151915233611c69565b611d645760405162461bcd60e51b815260040161069c90615728565b60975460ff1615611d875760405162461bcd60e51b815260040161069c906156c9565b6101c75460ff1615611dab5760405162461bcd60e51b815260040161069c9061586f565b611db3613eef565b611dbf57611dbf6135b3565b6101c35460405163a079a4dd60e01b81526001600160a01b039091169063a079a4dd90611df090849060040161524f565b600060405180830381600087803b158015611e0a57600080fd5b505af1158015611e1e573d6000803e3d6000fd5b505050506000611ebc6101c360009054906101000a90046001600160a01b03166001600160a01b031663b69ef8a86040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7657600080fd5b505afa158015611e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eae91906150c0565b611eb6613ef8565b90613f0d565b6101cf546101ca546040805160a0810182526101cd5481526101ce5460208201529081018390526101d05460608201526101d15460808201529293509091611f05908490613f4f565b6101cf556040805160a0810182526101c85481526101c95460208201526101ca54918101919091526101cb5460608201526101cc546080820152611f4a908490613f4f565b6101ca556101c35460408051637df1f1b960e01b815290516000926001600160a01b031691637df1f1b9916004808301926020929190829003018186803b158015611f9457600080fd5b505afa158015611fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fcc9190614e8a565b6101c554909150611ff190611fe9906001600160a01b03166133d6565b3083886134a2565b806001600160a01b03167f7411b87a3c039bdfd8f3510b21e8bd0736265f53513735e1f4aa7b4f306b728d8660405161202a919061524f565b60405180910390a26101cd546101cf5430907f42a55d7508b1c40b53524cf7cc2558b0f6bc7c4f262a3e929b65cd48bec2b687906120688782613f0d565b6101d054604051612080939260009081039291615b6a565b60405180910390a36101c8546101ca5430907f42a55d7508b1c40b53524cf7cc2558b0f6bc7c4f262a3e929b65cd48bec2b687906120be8682613f0d565b6101cb546040516120d6939260009081039291615b6a565b60405180910390a35050505050565b6120ed612cd4565b6121095760405162461bcd60e51b815260040161069c90615a39565b6001600160a01b03861661212f5760405162461bcd60e51b815260040161069c90615589565b8261214c5760405162461bcd60e51b815260040161069c906156f3565b816121695760405162461bcd60e51b815260040161069c9061596d565b6101c3546001600160a01b031680612185888888888888613dac565b6101c3546040516001600160a01b0391821691829182918616907f987cdba0cba67c68d2c8aba6a4ba6545565eccfb3e2e5ff39579ffd94acaf9bb90600090a3816001600160a01b031663fb1669ca846001600160a01b031663b69ef8a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561220d57600080fd5b505afa158015612221573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224591906150c0565b6040518263ffffffff1660e01b8152600401612261919061524f565b600060405180830381600087803b15801561227b57600080fd5b505af115801561228f573d6000803e3d6000fd5b50505050816001600160a01b03166396c8df37846001600160a01b03166321856b366040518163ffffffff1660e01b815260040160206040518083038186803b1580156122db57600080fd5b505afa1580156122ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231391906150c0565b6040518263ffffffff1660e01b815260040161232f919061524f565b600060405180830381600087803b15801561234957600080fd5b505af115801561235d573d6000803e3d6000fd5b50505050816001600160a01b031663b3b8a9c7846001600160a01b031663193501146040518163ffffffff1660e01b815260040160206040518083038186803b1580156123a957600080fd5b505afa1580156123bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e191906150c0565b6040518263ffffffff1660e01b81526004016123fd919061524f565b600060405180830381600087803b15801561241757600080fd5b505af115801561242b573d6000803e3d6000fd5b50505050816001600160a01b0316637ae14b09846001600160a01b03166364fb2d956040518163ffffffff1660e01b815260040160206040518083038186803b15801561247757600080fd5b505afa15801561248b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124af91906150c0565b6040518263ffffffff1660e01b81526004016124cb919061524f565b600060405180830381600087803b1580156124e557600080fd5b505af11580156124f9573d6000803e3d6000fd5b50505050816001600160a01b03166326a40e82846001600160a01b031663d28459776040518163ffffffff1660e01b815260040160206040518083038186803b15801561254557600080fd5b505afa158015612559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257d91906150c0565b6040518263ffffffff1660e01b8152600401612599919061524f565b600060405180830381600087803b1580156125b357600080fd5b505af11580156125c7573d6000803e3d6000fd5b50505050816001600160a01b031663a6b1ae0d846001600160a01b031663bbafcb406040518163ffffffff1660e01b815260040160206040518083038186803b15801561261357600080fd5b505afa158015612627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264b91906150c0565b6040518263ffffffff1660e01b8152600401612667919061524f565b600060405180830381600087803b15801561268157600080fd5b505af1158015612695573d6000803e3d6000fd5b50505050816001600160a01b03166336d91494846001600160a01b031663ce78290d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156126e157600080fd5b505afa1580156126f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271991906150c0565b6040518263ffffffff1660e01b8152600401612735919061524f565b600060405180830381600087803b15801561274f57600080fd5b505af1158015612763573d6000803e3d6000fd5b50505050816001600160a01b031663033669cf846001600160a01b0316631cd724ac6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127af57600080fd5b505afa1580156127c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e791906150c0565b6040518263ffffffff1660e01b8152600401612803919061524f565b600060405180830381600087803b15801561281d57600080fd5b505af1158015612831573d6000803e3d6000fd5b50506101c5546000925061284e91506001600160a01b03166133d6565b6001600160a01b03166370a08231866040518263ffffffff1660e01b8152600401612879919061516b565b60206040518083038186803b15801561289157600080fd5b505afa1580156128a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c991906150c0565b905080156128f3576101c5546128f3906128eb906001600160a01b03166133d6565b8684846134a2565b604051637d8b34e560e11b81526001600160a01b0385169063fb1669ca906129209060009060040161524f565b600060405180830381600087803b15801561293a57600080fd5b505af115801561294e573d6000803e3d6000fd5b50506040516327ea6f2b60e01b81526001600160a01b03871692506327ea6f2b915061297f9060009060040161524f565b600060405180830381600087803b15801561299957600080fd5b505af11580156129ad573d6000803e3d6000fd5b505050505050505050505050505050565b600081565b6101c3546040805163a4d66daf60e01b815290516000926001600160a01b03169163a4d66daf916004808301926020929190829003018186803b158015610d5557600080fd5b60975460ff1615612a2c5760405162461bcd60e51b815260040161069c906156c9565b6106d0613f74565b612a3c612cd4565b612a585760405162461bcd60e51b815260040161069c90615a39565b6101c7805460ff1916600117905560405130907f90d9b09c68a7e1312ce22801552b47265d77db9496383d51374b4058545447d790600090a2565b6101c55460009081908390612ab0906001600160a01b0316613708565b6001600160a01b031663430c208133836040518363ffffffff1660e01b8152600401612add9291906151c0565b60206040518083038186803b158015612af557600080fd5b505afa158015612b09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2d9190614fc4565b612b495760405162461bcd60e51b815260040161069c90615918565b60c95460ff16612b6b5760405162461bcd60e51b815260040161069c90615a02565b60c9805460ff1916905560975460ff1615612b985760405162461bcd60e51b815260040161069c906156c9565b612ba0614d98565b6101c554612bb6906001600160a01b0316613708565b6001600160a01b0316638c7a63ae866040518263ffffffff1660e01b8152600401612be1919061524f565b60a06040518083038186803b158015612bf957600080fd5b505afa158015612c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c31919061504c565b90506000612c428260200151613713565b9050600080612c51838561390a565b90925090506000612c628383613a16565b9050612c7084868b8461375d565b9750975050505050505060c9805460ff191660011790559092909150565b6101c354604080516359cb4cc960e11b815290516000926001600160a01b03169163b3969992916004808301926020929190829003018186803b158015610d5557600080fd5b6000610d8d600080516020615bbf8339815191526104f9613369565b612cf8612cd4565b612d145760405162461bcd60e51b815260040161069c90615a39565b6101c7805460ff1916905560405130907f7184039938737267597232635b117c924371ac877d4329f2dfa5ca674c5cc4a590600090a2565b606481565b60975460ff1615612d745760405162461bcd60e51b815260040161069c906156c9565b60008111612d945760405162461bcd60e51b815260040161069c9061599d565b612d9d8161411f565b611047613f74565b6101c65481565b600081815260656020526040812061066290614180565b60008115612de657612de18261065985670de0b6b3a76400006130c2565b61065f565b50600092915050565b6101c45481565b600082815260656020526040902060020154612e14906104f9613369565b610a7e5760405162461bcd60e51b815260040161069c9061564e565b612e38614dd0565b612e4182613713565b6040805160a081018252825481526001830154602082015260028301549181019190915260038201546060820152600490910154608082015292915050565b60c95460009060ff16612ea55760405162461bcd60e51b815260040161069c90615a02565b60c9805460ff1916905560975460ff1615612ed25760405162461bcd60e51b815260040161069c906156c9565b6000612edd84613713565b90508060040154600014612f035760405162461bcd60e51b815260040161069c906157ea565b6001810154612f129084613a16565b6001820155612f1f614dff565b5060408051808201909152838152602081018590526101c554612f4a906001600160a01b0316613708565b6001600160a01b0316635be57b6a82336040518363ffffffff1660e01b8152600401612f77929190615b0a565b602060405180830381600087803b158015612f9157600080fd5b505af1158015612fa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fc991906150c0565b6101c554909350612fee90612fe6906001600160a01b03166133d6565b3330876134a2565b8285336001600160a01b03167fcb3ef4109dcd006671348924f00aac8398190a5ff283d6e470d74581513e103687604051613029919061524f565b60405180910390a4505060c9805460ff1916600117905592915050565b600080516020615bbf83398151915281565b600080516020615bdf83398151915281565b6101c354604080516378592def60e11b815290516000926001600160a01b03169163f0b25bde916004808301926020929190829003018186803b158015610d5557600080fd5b600080516020615bff83398151915281565b6000826130d157506000610662565b828202828482816130de57fe5b041461065f5760405162461bcd60e51b815260040161069c906157a9565b600061065f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061418b565b613146613eef565b156131635760405162461bcd60e51b815260040161069c90615621565b6101d154156131845760405162461bcd60e51b815260040161069c90615a84565b6101c5546131ac9061319e906001600160a01b03166141c2565b6131a6613906565b90613a16565b6101d155565b303b1590565b600054610100900460ff16806131d157506131d16131b2565b806131df575060005460ff16155b6131fb5760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff16158015611035576000805460ff1961ff0019909116610100171660011790558015611047576000805461ff001916905550565b600054610100900460ff168061325257506132526131b2565b80613260575060005460ff16155b61327c5760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff161580156132a7576000805460ff1961ff0019909116610100171660011790555b6097805460ff191690558015611047576000805461ff001916905550565b600054610100900460ff16806132de57506132de6131b2565b806132ec575060005460ff16155b6133085760405162461bcd60e51b815260040161069c90615821565b600054610100900460ff16158015613333576000805460ff1961ff0019909116610100171660011790555b60c9805460ff191660011790558015611047576000805461ff001916905550565b60009182526065602052604090912060020155565b3390565b60008281526065602052604090206133859082614242565b156107fe57613392613369565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006106628261398d565b60006001600160a01b03821663b93f9b0a60065b6040518263ffffffff1660e01b8152600401613411919061524f565b60206040518083038186803b15801561342957600080fd5b505afa15801561343d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106629190614e8a565b61349d8383836040518060400160405280601881526020017704661696c656420746f207472616e736665722045524332360441b815250614257565b505050565b60408051808201909152601881527704661696c656420746f207472616e736665722045524332360441b6020820152611d298585858585614329565b60008281526065602052604090206134f690826143fe565b156107fe57613503613369565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60975460ff166135695760405162461bcd60e51b815260040161069c9061533c565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61359c613369565b6040516135a9919061516b565b60405180910390a1565b6101d1546135d35760405162461bcd60e51b815260040161069c906158d5565b6101c3546001600160a01b03166327ea6f2b61367c6135f0613ef8565b6101c360009054906101000a90046001600160a01b03166001600160a01b031663a4d66daf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561363f57600080fd5b505afa158015613653573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061367791906150c0565b614413565b6040518263ffffffff1660e01b8152600401613698919061524f565b600060405180830381600087803b1580156136b257600080fd5b505af11580156136c6573d6000803e3d6000fd5b50506101c554600092506136e391506001600160a01b03166141c2565b90506136f1816131a6613906565b6101cc55613701816131a6613906565b6101d15550565b600061066282614429565b600060018214806137245750600282145b6137405760405162461bcd60e51b815260040161069c906154d8565b600060018314613752576101cd613756565b6101c85b9392505050565b60008060008061376d888861390a565b9092509050600061377e8383613a16565b9050808611156137a05760405162461bcd60e51b815260040161069c906158a6565b88600401546137ad613906565b116137ca5760405162461bcd60e51b815260040161069c9061569e565b60048901546137e85760018901546137e29087613f0d565b60018a01555b60006137f48488614413565b90506000613806846136778a85613f0d565b6101c55490915061381f906001600160a01b0316613708565b6001600160a01b031663b81922058a83856040518463ffffffff1660e01b815260040161384e93929190615b93565b600060405180830381600087803b15801561386857600080fd5b505af115801561387c573d6000803e3d6000fd5b50506101c5546138ab925061389a91506001600160a01b03166133d6565b30336138a68587613a16565b6134a2565b888a60200151336001600160a01b03167f92f2787b755dae547f1701582fe74c7abf277ec14db316dd01abc69cacf7a25985856040516138ec929190615b85565b60405180910390a490955093505050505b94509492505050565b4290565b600080600061392185600201548560400151610641565b9050600061393786600301548660400151610641565b9050613950856080015182613f0d90919063ffffffff16565b9350613969856060015183613f0d90919063ffffffff16565b925050505b9250929050565b60006001600160a01b03821663b93f9b0a600b6133f5565b60006001600160a01b03821663b93f9b0a60056133f5565b60975460ff16156139c85760405162461bcd60e51b815260040161069c906156c9565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861359c613369565b60006001600160a01b03821663b93f9b0a60036133f5565b60008282018381101561065f5760405162461bcd60e51b815260040161069c906154a1565b613a43613eef565b15613a605760405162461bcd60e51b815260040161069c906159d4565b60026000613a6d82613713565b90508060040154600014613a935760405162461bcd60e51b815260040161069c906157ea565b836001600160a01b031663a4d66daf6040518163ffffffff1660e01b815260040160206040518083038186803b158015613acc57600080fd5b505afa158015613ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0491906150c0565b6001820155613b11614dff565b506040805180820190915260018201548152602081018390526101c554600090613b43906001600160a01b0316613708565b6101c5549091506000906001600160a01b0380841691635be57b6a918691613b6b9116614441565b6040518363ffffffff1660e01b8152600401613b88929190615b0a565b602060405180830381600087803b158015613ba257600080fd5b505af1158015613bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bda91906150c0565b90506000613cef6101c360009054906101000a90046001600160a01b03166001600160a01b031663b69ef8a86040518163ffffffff1660e01b815260040160206040518083038186803b158015613c3057600080fd5b505afa158015613c44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c6891906150c0565b6101c360009054906101000a90046001600160a01b03166001600160a01b031663a4d66daf6040518163ffffffff1660e01b815260040160206040518083038186803b158015613cb757600080fd5b505afa158015613ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb691906150c0565b9050613cf961313e565b613d016135b3565b60001942016101d15560405163b819220560e01b81526001600160a01b0384169063b819220590613d3a90859085908c90600401615b93565b600060405180830381600087803b158015613d5457600080fd5b505af1158015613d68573d6000803e3d6000fd5b505060006101cf8190556101ca5550613d889050878281816101cd614459565b50505050505050505050565b60006001600160a01b03821663b93f9b0a60076133f5565b6101c554600090613dc5906001600160a01b0316614510565b6001600160a01b03166301b215516040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613dff57600080fd5b505af1158015613e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e379190614e8a565b6101c380546001600160a01b0319166001600160a01b0383811691909117918290556101c554604051630df8fa4360e41b81529394509181169263df8fa43092613e9392169030908c908c908c908c908c908c906004016151d9565b600060405180830381600087803b158015613ead57600080fd5b505af1158015613ec1573d6000803e3d6000fd5b5050505050505050505050565b600061065f838361451b565b600061065f836001600160a01b038416614560565b6101cc54151590565b6101c9546101ce54600091610d8d9190613a16565b600061065f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614578565b600080613f60848460200151612dc3565b9050613f6c81846145a4565b949350505050565b60008060006101c360009054906101000a90046001600160a01b03166001600160a01b031663a6a25e886040518163ffffffff1660e01b8152600401606060405180830381600087803b158015613fca57600080fd5b505af1158015613fde573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061400291906150d8565b92509250925060008211806140175750600081115b1561349d576101c354600090614040906001600160a01b03168461403b8588613a16565b6145cb565b9050306001600160a01b03166101c360009054906101000a90046001600160a01b03166001600160a01b0316637df1f1b96040518163ffffffff1660e01b815260040160206040518083038186803b15801561409b57600080fd5b505afa1580156140af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140d39190614e8a565b6001600160a01b03167fd1055dc2c2a003a83dfacb1c38db776eab5ef89d77a8f05a3512e8cf57f953ce858588866040516141119493929190615b6a565b60405180910390a350505050565b6101c55461104790614139906001600160a01b03166133d6565b6101c35460408051808201909152601981527811985a5b1959081d1bc818dbdb1b1958dd081c185e5b595b9d603a1b602082015233916001600160a01b0316908590614329565b60006106628261484e565b600081836141ac5760405162461bcd60e51b815260040161069c9190615258565b5060008385816141b857fe5b0495945050505050565b60006001600160a01b03821663fc56365860075b6040518263ffffffff1660e01b81526004016141f2919061524f565b60206040518083038186803b15801561420a57600080fd5b505afa15801561421e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066291906150c0565b600061065f836001600160a01b038416614852565b6001600160a01b03831661427d5760405162461bcd60e51b815260040161069c906153e7565b60405163a9059cbb60e01b81526000906001600160a01b0386169063a9059cbb906142ae90879087906004016151c0565b602060405180830381600087803b1580156142c857600080fd5b505af11580156142dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143009190614fc4565b905081816143215760405162461bcd60e51b815260040161069c9190615258565b505050505050565b6001600160a01b03831661434f5760405162461bcd60e51b815260040161069c906153e7565b6040516323b872dd60e01b81526000906001600160a01b038716906323b872dd9061438290889088908890600401615220565b602060405180830381600087803b15801561439c57600080fd5b505af11580156143b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143d49190614fc4565b905081816143f55760405162461bcd60e51b815260040161069c9190615258565b50505050505050565b600061065f836001600160a01b03841661489c565b6000818310614422578161065f565b5090919050565b60006001600160a01b03821663b93f9b0a600c6133f5565b60006001600160a01b03821663b93f9b0a600e6133f5565b60008060008360010154905060006144778986600301548985614962565b600387018054908290556002880154929b509092509061449a908a908986614962565b600288018054908290558854929b5090935090307f42a55d7508b1c40b53524cf7cc2558b0f6bc7c4f262a3e929b65cd48bec2b687856144da8186613f0d565b60038c01546144e98189613f0d565b6040516144f99493929190615b6a565b60405180910390a350989997985050505050505050565b6000610662826149bb565b8154600090821061453e5760405162461bcd60e51b815260040161069c906152ab565b82600001828154811061454d57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b6000818484111561459c5760405162461bcd60e51b815260040161069c9190615258565b505050900390565b6101c9546101ce5460009182916145ba91613a16565b9050613f6c848460200151836149d3565b6101c55460009061462b906145e8906001600160a01b03166133d6565b85306145f48688613a16565b6040518060400160405280601981526020017811985a5b1959081d1bc818dbdb1b1958dd081c185e5b595b9d603a1b815250614329565b600080614636614a2c565b6101c554919350915060009061466090614658906001600160a01b0316614ba3565b6064906130fc565b6040805160a0810182526101c85481526101c95460208201526101ca54918101919091526101cb5460608201526101cc546080820152909150869086906000906146ab908790613f4f565b6040805160a0810182526101c85481526101c95460208201526101ca54918101919091526101cb5460608201526101cc5460808201529091506000906146f2908790613f4f565b905060006147228361471b614713896101c654613a1690919063ffffffff16565b606490613f0d565b60646149d3565b90506000614732868860646149d3565b905061473e8a82613a16565b995061474a8682613f0d565b955061475b868684866101c8614bbb565b6101ce54919750955061477d90614773908890612dc3565b6101d05490613a16565b6040805160a0810182526101cd5481526101ce5460208201526101cf54918101919091526101d05460608201526101d15460808201529094506147c1908990613f4f565b92506147d2868686866101cd614bbb565b90965094506147e18686613a16565b95506147ef858860646149d3565b90506147fb8a82613a16565b99506148078682613f0d565b95506000945061483061481a8787613a16565b60006148268989613a16565b60006101cd614459565b909650945061483e8a614c41565b5050505050505050509392505050565b5490565b600061485e8383614560565b61489457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610662565b506000610662565b6000818152600183016020526040812054801561495857835460001980830191908101906000908790839081106148cf57fe5b90600052602060002001549050808760000184815481106148ec57fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061491c57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610662565b6000915050610662565b600080851580614970575083155b1561497f5750849050836138fd565b8386101561498b578593505b60006149978585612dc3565b90506149a38786613f0d565b6149ad8783613a16565b925092505094509492505050565b60006001600160a01b03821663b93f9b0a60026133f5565b60006149dd614e19565b6149e683614cf0565b90506149f0614e19565b6149f985614cf0565b9050614a21670de0b6b3a7640000614a1b88614a158587614d1e565b90614d56565b90614d77565b519695505050505050565b6000806101c360009054906101000a90046001600160a01b03166001600160a01b0316631cd724ac6040518163ffffffff1660e01b815260040160206040518083038186803b158015614a7e57600080fd5b505afa158015614a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ab691906150c0565b91506101c360009054906101000a90046001600160a01b03166001600160a01b031663193501146040518163ffffffff1660e01b815260040160206040518083038186803b158015614b0757600080fd5b505afa158015614b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b3f91906150c0565b9050614b9d614b966101c360009054906101000a90046001600160a01b03166001600160a01b031663b69ef8a86040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7657600080fd5b8290613a16565b90509091565b60006001600160a01b03821663fc56365860036141d6565b60018101546002820154600091829180861015614bd6578095505b600385015480881015614be7578097505b6000614bf38983613f0d565b90506000614c018286610641565b90506000614c0f8a86613f0d565b90506000614c1d8288610641565b9050614c2c8e8e85848e614459565b909f909e509c50505050505050505050505050565b306001600160a01b03167ff3583f178a8d4f8888c3683f8e948faf9b6eb701c4f1fab265a6ecad1a1ddebb82604051614c7a919061524f565b60405180910390a26101c55461104790614c9c906001600160a01b03166133d6565b6101c5543090614cb4906001600160a01b03166133e1565b846040518060400160405280601981526020017f4661696c656420746f2073656e6420746f207265736572766500000000000000815250614329565b614cf8614e19565b604080516020810190915280614d1684670de0b6b3a76400006130c2565b905292915050565b614d26614e19565b6040805160208101909152825184518291614d4d9161065990670de0b6b3a76400006130c2565b90529392505050565b614d5e614e19565b604080516020810190915283518190614d4d90856130c2565b614d7f614e19565b604080516020810190915283518190614d4d90856130fc565b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6040518060200160405280600081525090565b60008083601f840112614e3d578182fd5b50813567ffffffffffffffff811115614e54578182fd5b602083019150836020808302850101111561396e57600080fd5b600060208284031215614e7f578081fd5b813561065f81615ba9565b600060208284031215614e9b578081fd5b815161065f81615ba9565b600080600080600080600080610100898b031215614ec2578384fd5b8835614ecd81615ba9565b97506020890135614edd81615ba9565b979a9799505050506040860135956060810135956080820135955060a0820135945060c0820135935060e0909101359150565b60008060008060008060c08789031215614f28578182fd5b8635614f3381615ba9565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b60008060008060408587031215614f70578384fd5b843567ffffffffffffffff80821115614f87578586fd5b614f9388838901614e2c565b90965094506020870135915080821115614fab578384fd5b50614fb887828801614e2c565b95989497509550505050565b600060208284031215614fd5578081fd5b8151801515811461065f578182fd5b600060208284031215614ff5578081fd5b5035919050565b6000806040838503121561500e578182fd5b82359150602083013561502081615ba9565b809150509250929050565b6000806040838503121561503d578182fd5b50508035926020909101359150565b600060a0828403121561505d578081fd5b60405160a0810181811067ffffffffffffffff8211171561507c578283fd5b604052825161508a81615ba9565b80825250602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6000602082840312156150d1578081fd5b5051919050565b6000806000606084860312156150ec578081fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561511d578384fd5b863595506020870135945060408701359350606087013560ff81168114615142578283fd5b9598949750929560808101359460a0909101359350915050565b80518252602090810151910152565b6001600160a01b0391909116815260200190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03988916815296881660208801529490961660408601526060850192909252608084015260a083015260c082019290925260e08101919091526101000190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b90815260200190565b6000602080835283518082850152825b8181101561528457858101830151858201604001528201615268565b818111156152955783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252601690820152754661696c656420746f20617070726f7665205553444360501b604082015260600190565b6020808252602d908201527f546f6b656e7349647320616e6420416d6f756e7473206d75737420626520746860408201526c0ca40e6c2daca40d8cadccee8d609b1b606082015260800190565b6020808252601a908201527f43616e27742073656e6420746f207a65726f2061646472657373000000000000604082015260600190565b6020808252602c908201527f4d75737420686176652070617573657220726f6c6520746f20706572666f726d60408201526b103a3434b99030b1ba34b7b760a11b606082015260800190565b6020808252601a908201527f4372656469746c696e652063616e6e6f7420626520656d707479000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b602080825260139082015272556e737570706f72746564207472616e63686560681b604082015260600190565b6020808252602d908201527f436f6e66696720616e6420626f72726f7765722061646472657373657320636160408201526c6e6e6f7420626520656d70747960981b606082015260800190565b6020808252601e908201527f4f6e6c7920637265646974206465736b2063616e2063616c6c20746869730000604082015260600190565b6020808252601a908201527f426f72726f776572206d757374206e6f7420626520656d707479000000000000604082015260600190565b6020808252601d908201527f4f776e657220616464726573732063616e6e6f7420626520656d707479000000604082015260600190565b60208082526010908201526f105b1c9958591e481b5a59dc985d195960821b604082015260600190565b602080825260139082015272141bdbdb08185b1c9958591e481b1bd8dad959606a1b604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b602080825260119082015270151c985b98da19481a5cc81b1bd8dad959607a1b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252818101527f5061796d656e7420706572696f64206d757374206e6f7420626520656d707479604082015260600190565b6020808252602c908201527f4d7573742068617665206c6f636b657220726f6c6520746f20706572666f726d60408201526b103a3434b99030b1ba34b7b760a11b606082015260800190565b6020808252818101527f4f776e65722063616e6e6f7420626520746865207a65726f2061646472657373604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526017908201527f5472616e63686520686173206265656e206c6f636b6564000000000000000000604082015260600190565b6020808252602e908201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560408201526d195b881a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601e908201527f44726177646f776e73206172652063757272656e746c79207061757365640000604082015260600190565b602080825260159082015274125b9d985b1a59081c995919595b48185b5bdd5b9d605a1b604082015260600190565b60208082526023908201527f4a756e696f72207472616e636865206d757374206265206c6f636b65642066696040820152621c9cdd60ea1b606082015260800190565b60208082526035908201527f4f6e6c792074686520746f6b656e206f776e657220697320616c6c6f776564206040820152743a379031b0b636103a3434b990333ab731ba34b7b760591b606082015260800190565b6020808252601690820152755465726d206d757374206e6f7420626520656d70747960501b604082015260600190565b60208082526017908201527f4d75737420706179206d6f7265207468616e207a65726f000000000000000000604082015260600190565b602080825260149082015273141bdbdb081a185cc81899595b881b1bd8dad95960621b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252602b908201527f4d75737420686176652061646d696e20726f6c6520746f20706572666f726d2060408201526a3a3434b99030b1ba34b7b760a91b606082015260800190565b6020808252601d908201527f4a756e696f72207472616e63686520616c7265616479206c6f636b6564000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60608101615b18828561515c565b6001600160a01b039290921660409190910152919050565b600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b93845260208401929092526040830152606082015260800190565b918252602082015260400190565b9283526020830191909152604082015260600190565b6001600160a01b038116811461104757600080fdfeb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aaf9a8bb3cbd6b84fbccefa71ff73e26e798553c6914585a84886212a46a90279a2646970667358221220f21929af0f55a8aa725e56cfb1850a6cb4c754f8f75b561b008df7d80e060e6264736f6c634300060c0033
🤖 Code Reader
Generate instant answers for your smart contract questions using Al Models. Read more.
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.


