/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { RiverBoxImplV2, RiverBoxImplV2Interface, } from "../RiverBoxImplV2"; const _abi = [ { inputs: [], stateMutability: "nonpayable", type: "constructor", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "previousAdmin", type: "address", }, { indexed: false, internalType: "address", name: "newAdmin", type: "address", }, ], name: "AdminChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: true, internalType: "address", name: "approved", type: "address", }, { indexed: true, internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "Approval", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: true, internalType: "address", name: "operator", type: "address", }, { indexed: false, internalType: "bool", name: "approved", type: "bool", }, ], name: "ApprovalForAll", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "beacon", type: "address", }, ], name: "BeaconUpgraded", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "payer", type: "address", }, { indexed: true, internalType: "uint256", name: "tokenId", type: "uint256", }, { indexed: false, internalType: "uint256", name: "eventTime", type: "uint256", }, ], name: "BoxAwarded", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "from", type: "uint256", }, { indexed: true, internalType: "uint256", name: "to", type: "uint256", }, ], name: "BoxPriceChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address", }, { indexed: true, internalType: "address", name: "newOwner", type: "address", }, ], name: "OwnershipTransferred", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "Paused", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "bytes32", name: "previousAdminRole", type: "bytes32", }, { indexed: true, internalType: "bytes32", name: "newAdminRole", type: "bytes32", }, ], name: "RoleAdminChanged", 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: "from", type: "address", }, { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: true, internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "Transfer", 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: "implementation", type: "address", }, ], name: "Upgraded", type: "event", }, { inputs: [], name: "DEFAULT_ADMIN_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address[]", name: "receivers", type: "address[]", }, ], name: "airdrop", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "allInfo", outputs: [ { components: [ { internalType: "uint16", name: "locationId", type: "uint16", }, { internalType: "uint16", name: "fusionCount", type: "uint16", }, { internalType: "uint32", name: "signature", type: "uint32", }, { internalType: "uint256[]", name: "parts", type: "uint256[]", }, ], internalType: "struct IRiverBoxV2.Product", name: "", type: "tuple", }, { internalType: "address", name: "", type: "address", }, { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "approve", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "owner", type: "address", }, ], name: "balanceOf", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "baseURI", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint16[]", name: "locationIds", type: "uint16[]", }, { internalType: "uint16[]", name: "locationIdStocks", type: "uint16[]", }, ], name: "batchSetPawnLocationStock", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "startIndex", type: "uint256", }, { internalType: "uint256", name: "length", type: "uint256", }, ], name: "batchStockInfo", outputs: [ { internalType: "uint256[]", name: "", type: "uint256[]", }, { internalType: "uint256[]", name: "", type: "uint256[]", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "boxPrice", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "quality", type: "uint256", }, { internalType: "address", name: "referrer", type: "address", }, ], name: "buy", outputs: [], stateMutability: "payable", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "claimableAmountMapping", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "devAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "devShare", outputs: [ { internalType: "uint8", name: "", type: "uint8", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "funderAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "fuseLock", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "getApproved", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", 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: "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: [], name: "implementationVersion", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "pure", type: "function", }, { inputs: [ { internalType: "uint256", name: "_boxPrice", type: "uint256", }, { internalType: "string", name: "_name", type: "string", }, { internalType: "string", name: "_symbol", type: "string", }, { internalType: "string", name: "_initBaseURI", type: "string", }, { internalType: "address", name: "_proxyRegistryAddress", type: "address", }, ], name: "initialize", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "owner", type: "address", }, { internalType: "address", name: "operator", type: "address", }, ], name: "isApprovedForAll", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "marketAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "marketShare", outputs: [ { internalType: "uint8", name: "", type: "uint8", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "name", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "owner", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "ownerOf", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "paidBoxes", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pause", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "paused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pawnsStock", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "randomGeneratorAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "referrerContrib", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "renounceOwnership", outputs: [], stateMutability: "nonpayable", 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: "address", name: "from", type: "address", }, { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "safeTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "from", type: "address", }, { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "tokenId", type: "uint256", }, { internalType: "bytes", name: "_data", type: "bytes", }, ], name: "safeTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "operator", type: "address", }, { internalType: "bool", name: "approved", type: "bool", }, ], name: "setApprovalForAll", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "string", name: "newBaseURI", type: "string", }, ], name: "setBaseURI", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "newPrice", type: "uint256", }, ], name: "setBoxPrice", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newAddress", type: "address", }, ], name: "setRandomGenerator", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "_funderAddress", type: "address", }, { internalType: "address", name: "_devAddress", type: "address", }, { internalType: "address", name: "_marketAddress", type: "address", }, { internalType: "uint8", name: "_devShare", type: "uint8", }, { internalType: "uint8", name: "_marketShare", type: "uint8", }, ], name: "setShare", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, { internalType: "string", name: "_tokenURI", type: "string", }, ], name: "setTokenURI", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes4", name: "interfaceId", type: "bytes4", }, ], name: "supportsInterface", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "symbol", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "index", type: "uint256", }, ], name: "tokenByIndex", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "tokenDetail", outputs: [ { components: [ { internalType: "uint16", name: "locationId", type: "uint16", }, { internalType: "uint16", name: "fusionCount", type: "uint16", }, { internalType: "uint32", name: "signature", type: "uint32", }, { internalType: "uint256[]", name: "parts", type: "uint256[]", }, ], internalType: "struct IRiverBoxV2.Product", name: "", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "owner", type: "address", }, { internalType: "uint256", name: "index", type: "uint256", }, ], name: "tokenOfOwnerByIndex", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "tokenURI", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "totalClaimableAmount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "totalReferrerContrib", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "totalSupply", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "from", type: "address", }, { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "transferFrom", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newOwner", type: "address", }, ], name: "transferOwnership", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "unPause", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newImplementation", type: "address", }, ], name: "upgradeTo", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newImplementation", type: "address", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "upgradeToAndCall", outputs: [], stateMutability: "payable", type: "function", }, { inputs: [ { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "withdraw", outputs: [], stateMutability: "nonpayable", type: "function", }, ]; const _bytecode = "0x60a06040523060601b6080523480156200001857600080fd5b50600054610100900460ff168062000033575060005460ff16155b6200009b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000c7576000805460ff1961ff0019909116610100171660011790555b8015620000da576000805461ff00191690555b5060805160601c6151c66200010f60003960008181611212015281816112520152818161144c015261148c01526151c66000f3fe60806040526004361061038c5760003560e01c8063715018a6116101dc578063a22cb46511610102578063cb47b5ca116100a0578063ec465cc51161006f578063ec465cc514610a9d578063f2fde38b14610acb578063f7b188a514610aeb578063f7dbea3e14610b005761038c565b8063cb47b5ca14610a0f578063d547741f14610a3d578063df3cf5b814610a5d578063e985e9c514610a7d5761038c565b8063adec5ed5116100dc578063adec5ed51461098c578063aed04fae146109ad578063b88d4fde146109cf578063c87b56dd146109ef5761038c565b8063a22cb4651461093e578063a64828581461095e578063a89989dd146109755761038c565b80638456cb591161017a57806391d148541161014957806391d14854146108d357806395623641146108f357806395d89b4114610914578063a217fddf146109295761038c565b80638456cb591461085e578063854067c3146108735780638da5cb5b146108935780638ea40311146108b25761038c565b806377891817116101b657806377891817146107d45780637deb6025146107e95780637e695deb146107fc5780637fbf23b61461082a5761038c565b8063715018a61461077d578063729ad39e14610792578063773fe4f6146107b25761038c565b80633659cfe6116102c15780634f6ccce71161025f5780636415c03b1161022e5780636415c03b146106eb578063650bdf5f1461071a5780636c0360eb1461074857806370a082311461075d5761038c565b80634f6ccce71461067357806355f804b3146106935780635c975abb146106b35780636352211e146106cb5761038c565b806342842e0e1161029b57806342842e0e1461060957806346c3d537146106295780634bc19fee146106405780634f1ef286146106605761038c565b80633659cfe61461059b5780633ad10ef6146105bb5780633dc60c3b146105dc5761038c565b80631d5e33631161032e5780632e1a7d4d116103085780632e1a7d4d1461051b5780632f2ff15d1461053b5780632f745c591461055b57806336568abe1461057b5761038c565b80631d5e3363146104ab57806323b872dd146104cb578063248a9ca3146104eb5761038c565b8063081812fc1161036a578063081812fc14610412578063095ea7b31461044a578063162094c41461046c57806318160ddd1461048c5761038c565b806301ffc9a71461039157806306bfcec6146103c657806306fdde03146103fd575b600080fd5b34801561039d57600080fd5b506103b16103ac3660046149e7565b610b20565b60405190151581526020015b60405180910390f35b3480156103d257600080fd5b506040805180820190915260058152640322e302e360dc1b60208201525b6040516103bd9190614d3f565b34801561040957600080fd5b506103f0610b33565b34801561041e57600080fd5b5061043261042d3660046149ab565b610bc5565b6040516001600160a01b0390911681526020016103bd565b34801561045657600080fd5b5061046a610465366004614892565b610c52565b005b34801561047857600080fd5b5061046a610487366004614a85565b610d68565b34801561049857600080fd5b506099545b6040519081526020016103bd565b3480156104b757600080fd5b5061046a6104c6366004614ab3565b610e04565b3480156104d757600080fd5b5061046a6104e636600461476b565b610f0e565b3480156104f757600080fd5b5061049d6105063660046149ab565b600090815260c9602052604090206001015490565b34801561052757600080fd5b5061046a6105363660046149ab565b610f3f565b34801561054757600080fd5b5061046a6105563660046149c3565b6110c9565b34801561056757600080fd5b5061049d610576366004614892565b6110f0565b34801561058757600080fd5b5061046a6105963660046149c3565b611189565b3480156105a757600080fd5b5061046a6105b63660046146ad565b611207565b3480156105c757600080fd5b5061020654610432906001600160a01b031681565b3480156105e857600080fd5b506105fc6105f73660046149ab565b6112d0565b6040516103bd9190614f12565b34801561061557600080fd5b5061046a61062436600461476b565b6113dc565b34801561063557600080fd5b5061049d6102035481565b34801561064c57600080fd5b5061046a61065b3660046146ad565b6113f7565b61046a61066e366004614845565b611441565b34801561067f57600080fd5b5061049d61068e3660046149ab565b6114f7565b34801561069f57600080fd5b5061046a6106ae366004614a3b565b611598565b3480156106bf57600080fd5b5060fb5460ff166103b1565b3480156106d757600080fd5b506104326106e63660046149ab565b6115d3565b3480156106f757600080fd5b5061070b6107063660046149ab565b61164a565b6040516103bd93929190614f25565b34801561072657600080fd5b5061049d6107353660046146ad565b6102016020526000908152604090205481565b34801561075457600080fd5b506103f0611779565b34801561076957600080fd5b5061049d6107783660046146ad565b611808565b34801561078957600080fd5b5061046a61188f565b34801561079e57600080fd5b5061046a6107ad3660046148bd565b6118f6565b3480156107be57600080fd5b50610207546103b190600160b01b900460ff1681565b3480156107e057600080fd5b5061049d6119d8565b61046a6107f73660046149c3565b6119f2565b34801561080857600080fd5b5061081c610817366004614b55565b611c34565b6040516103bd929190614d1a565b34801561083657600080fd5b506102075461084c90600160a81b900460ff1681565b60405160ff90911681526020016103bd565b34801561086a57600080fd5b5061046a611ee0565b34801561087f57600080fd5b5061046a61088e366004614955565b611f0f565b34801561089f57600080fd5b506101c3546001600160a01b0316610432565b3480156108be57600080fd5b506101fc54610432906001600160a01b031681565b3480156108df57600080fd5b506103b16108ee3660046149c3565b612117565b3480156108ff57600080fd5b5061020754610432906001600160a01b031681565b34801561092057600080fd5b506103f0612142565b34801561093557600080fd5b5061049d600081565b34801561094a57600080fd5b5061046a610959366004614814565b612151565b34801561096a57600080fd5b5061049d6101f95481565b34801561098157600080fd5b5061049d6101fa5481565b34801561099857600080fd5b5061020554610432906001600160a01b031681565b3480156109b957600080fd5b506102075461084c90600160a01b900460ff1681565b3480156109db57600080fd5b5061046a6109ea3660046147ab565b612223565b3480156109fb57600080fd5b506103f0610a0a3660046149ab565b612255565b348015610a1b57600080fd5b5061049d610a2a3660046146ad565b6101ff6020526000908152604090205481565b348015610a4957600080fd5b5061046a610a583660046149c3565b6123b4565b348015610a6957600080fd5b5061046a610a78366004614701565b6123da565b348015610a8957600080fd5b506103b1610a983660046146c9565b612471565b348015610aa957600080fd5b5061049d610ab83660046146ad565b6102026020526000908152604090205481565b348015610ad757600080fd5b5061046a610ae63660046146ad565b612555565b348015610af757600080fd5b5061046a61261e565b348015610b0c57600080fd5b5061046a610b1b3660046149ab565b61264d565b6000610b2b826126aa565b90505b919050565b606060658054610b4290615070565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6e90615070565b8015610bbb5780601f10610b9057610100808354040283529160200191610bbb565b820191906000526020600020905b815481529060010190602001808311610b9e57829003601f168201915b5050505050905090565b6000610bd0826126cf565b610c365760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b6000610c5d826115d3565b9050806001600160a01b0316836001600160a01b03161415610ccb5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610c2d565b336001600160a01b0382161480610ce75750610ce78133610a98565b610d595760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610c2d565b610d6383836126ec565b505050565b610d736000336108ee565b610d8f5760405162461bcd60e51b8152600401610c2d90614d52565b610d98826126cf565b610de45760405162461bcd60e51b815260206004820152601c60248201527f55524920736574206f66206e6f6e6578697374656e7420746f6b656e000000006044820152606401610c2d565b60008281526101fd602090815260409091208251610d63928401906144e4565b600054610100900460ff1680610e1d575060005460ff16155b610e395760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff16158015610e64576000805460ff1961ff0019909116610100171660011790555b610e6c61275a565b610e746127de565b610e7c61284e565b610e846128c6565b610e8e858561292e565b610e966129be565b610ea1600033612a25565b610ea9612a2f565b610207805460ff60b01b1916600160b01b1790556101f98690558251610ed7906101fb9060208601906144e4565b5061020480546001600160a01b0319166001600160a01b0384161790558015610f06576000805461ff00191690555b505050505050565b610f183382612ac7565b610f345760405162461bcd60e51b8152600401610c2d90614ec1565b610d63838383612b91565b610f4a6000336108ee565b610f665760405162461bcd60e51b8152600401610c2d90614d52565b80471015610faf5760405162461bcd60e51b8152602060048201526016602482015275616d6f756e7420657863656564732062616c616e636560501b6044820152606401610c2d565b61020754600090610fd890606490610fd2908590600160a01b900460ff16612d3c565b90612d48565b61020754909150600090610ffe90606490610fd2908690600160a81b900460ff16612d3c565b610206546040519192506001600160a01b03169083156108fc029084906000818181858888f1935050505015801561103a573d6000803e3d6000fd5b50610207546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611076573d6000803e3d6000fd5b50610205546001600160a01b03166108fc61109b836110958787612d54565b90612d54565b6040518115909202916000818181858888f193505050501580156110c3573d6000803e3d6000fd5b50505050565b600082815260c960205260409020600101546110e681335b612d60565b610d638383612dc4565b60006110fb83611808565b821061115d5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610c2d565b506001600160a01b03821660009081526097602090815260408083208484529091529020545b92915050565b6001600160a01b03811633146111f95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c2d565b6112038282612e4a565b5050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156112505760405162461bcd60e51b8152600401610c2d90614ddb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611282612eb1565b6001600160a01b0316146112a85760405162461bcd60e51b8152600401610c2d90614e27565b6112b181612edf565b604080516000808252602082019092526112cd91839190612f46565b50565b60408051608081018252600080825260208201819052918101919091526060808201526112fc826126cf565b61133b5760405162461bcd60e51b815260206004820152601060248201526f546f6b656e206e6f742065786973747360801b6044820152606401610c2d565b60008281526101fe60209081526040918290208251608081018452815461ffff80821683526201000082041682850152640100000000900463ffffffff168185015260018201805485518186028101860190965280865291949293606086019392908301828280156113cc57602002820191906000526020600020905b8154815260200190600101908083116113b8575b5050505050815250509050919050565b610d6383838360405180602001604052806000815250612223565b6114026000336108ee565b61141e5760405162461bcd60e51b8152600401610c2d90614d52565b6101fc80546001600160a01b0319166001600160a01b0392909216919091179055565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561148a5760405162461bcd60e51b8152600401610c2d90614ddb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114bc612eb1565b6001600160a01b0316146114e25760405162461bcd60e51b8152600401610c2d90614e27565b6114eb82612edf565b61120382826001612f46565b600061150260995490565b82106115655760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610c2d565b6099828154811061158657634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6115a36000336108ee565b6115bf5760405162461bcd60e51b8152600401610c2d90614d52565b8051611203906101fb9060208401906144e4565b6000818152606760205260408120546001600160a01b031680610b2b5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610c2d565b60408051608081018252600080825260208201819052918101919091526060808201526000606061167a846126cf565b6116b95760405162461bcd60e51b815260206004820152601060248201526f546f6b656e206e6f742065786973747360801b6044820152606401610c2d565b60008481526101fe602052604090206116d1856115d3565b6116da86612255565b60408051608081018252845461ffff80821683526201000082041660208084019190915264010000000090910463ffffffff168284015260018601805484518184028101840190955280855292938793606086019391929183018282801561176157602002820191906000526020600020905b81548152602001906001019080831161174d575b50505050508152505092509250925092509193909250565b6101fb805461178790615070565b80601f01602080910402602001604051908101604052809291908181526020018280546117b390615070565b80156118005780601f106117d557610100808354040283529160200191611800565b820191906000526020600020905b8154815290600101906020018083116117e357829003601f168201915b505050505081565b60006001600160a01b0382166118735760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610c2d565b506001600160a01b031660009081526068602052604090205490565b6101c3546001600160a01b031633146118ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c2d565b6118f46000613091565b565b6119016000336108ee565b61191d5760405162461bcd60e51b8152600401610c2d90614d52565b6101fa54815111156119715760405162461bcd60e51b815260206004820152601860248201527f6f7574206f6620636c61696d61626c652062616c616e636500000000000000006044820152606401610c2d565b60005b81518110156119c1576119af60018383815181106119a257634e487b7160e01b600052603260045260246000fd5b60200260200101516130e4565b806119b9816150cd565b915050611974565b5080516101fa546119d191612d54565b6101fa5550565b6101fa546101f6546000916119ed9190612d54565b905090565b60fb5460ff1615611a385760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610c2d565b600261012d541415611a8c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c2d565b600261012d55611a9a61339d565b611aa26119d8565b821115611ae65760405162461bcd60e51b8152602060048201526012602482015271189b1a5b9908189bde081cdbdb19081bdd5d60721b6044820152606401610c2d565b6014821115611b375760405162461bcd60e51b815260206004820152601960248201527f657863656564206d6178696d756d207175616c697479203230000000000000006044820152606401610c2d565b6101f954611b459083612d3c565b341015611b945760405162461bcd60e51b815260206004820152601e60248201527f7061796d656e74206973206c657373207468616e20626f7820707269636500006044820152606401610c2d565b611b9e82336130e4565b6001600160a01b03811615611bfe576001600160a01b03811660009081526102026020526040902054611bd19083613435565b6001600160a01b0382166000908152610202602052604090205561020354611bf99083613435565b610203555b3360009081526101ff6020526040902054611c199083613435565b3360009081526101ff60205260409020555050600161012d55565b6101f65460609081908410611c9f5760405162461bcd60e51b815260206004820152602b60248201527f7374617274496e6465782063616e6e6f74206f7665722073746f636b4c6f636160448201526a0e8d2dedce698cadccee8d60ab1b6064820152608401610c2d565b60008311611ce75760405162461bcd60e51b815260206004820152601560248201527406c656e6774682063616e6e6f7420657175616c203605c1b6044820152606401610c2d565b6000611cff611cf68587614fac565b6101f654613441565b90506000611d0d8683615016565b90506000816001600160401b03811115611d3757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611d60578160200160208202803683370190505b5090506000826001600160401b03811115611d8b57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611db4578160200160208202803683370190505b50905060005b83811015611ed2576101f6611dcf8a83613435565b81548110611ded57634e487b7160e01b600052603260045260246000fd5b90600052602060002090601091828204019190066002029054906101000a900461ffff1661ffff16838281518110611e3557634e487b7160e01b600052603260045260246000fd5b60209081029190910101526101f7611e4d8a83613435565b81548110611e6b57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1663ffffffff16828281518110611eb757634e487b7160e01b600052603260045260246000fd5b6020908102919091010152611ecb816150cd565b9050611dba565b509097909650945050505050565b611eeb6000336108ee565b611f075760405162461bcd60e51b8152600401610c2d90614d52565b6118f4612a2f565b611f1a6000336108ee565b611f365760405162461bcd60e51b8152600401610c2d90614d52565b60005b82518161ffff161015610d63576000838261ffff1681518110611f6c57634e487b7160e01b600052603260045260246000fd5b602002602001015190506000838361ffff1681518110611f9c57634e487b7160e01b600052603260045260246000fd5b6020026020010151905060005b8161ffff168161ffff161015612103576101f68054600180820183556000929092527f6ea6ba7afdda9dd98317feb84bb80d157ea581b23ca788496ba1c38c64dd821260108204018054600f9092166002026101000a61ffff81810219909316928716029190911790556101f8546120299163ffffffff90911690614fc4565b6101f8805463ffffffff191663ffffffff92831617908190556001911610156120945760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c2d565b6101f8546101f780546001810182556000919091527fab423d91e51275f405563b297e90b3a62f6d51fbcf68f05522049701393dd8c36008820401805463ffffffff60079093166004026101000a83810219909116929093169092021790556120fc816150ab565b9050611fa9565b50505080612110906150ab565b9050611f39565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060668054610b4290615070565b6001600160a01b0382163314156121aa5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610c2d565b336000818152606a602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612217911515815260200190565b60405180910390a35050565b61222d3383612ac7565b6122495760405162461bcd60e51b8152600401610c2d90614ec1565b6110c384848484613457565b6060612260826126cf565b6122ac5760405162461bcd60e51b815260206004820152601f60248201527f55524920717565727920666f72206e6f6e6578697374656e7420746f6b656e006044820152606401610c2d565b60008281526101fd6020526040812080546122c690615070565b80601f01602080910402602001604051908101604052809291908181526020018280546122f290615070565b801561233f5780601f106123145761010080835404028352916020019161233f565b820191906000526020600020905b81548152906001019060200180831161232257829003601f168201915b50505050509050600061235061348a565b82519091501561236257509050610b2e565b600081511161238057604051806020016040528060008152506123ab565b8061238a8561349a565b60405160200161239b929190614c39565b6040516020818303038152906040525b92505050610b2e565b600082815260c960205260409020600101546123d081336110e1565b610d638383612e4a565b6123e56000336108ee565b6124015760405162461bcd60e51b8152600401610c2d90614d52565b61020580546001600160a01b03199081166001600160a01b039788161790915561020680548216958716959095179094556102078054909416929094169190911760ff60a01b1916600160a01b60ff928316021760ff60a81b1916600160a81b9390911692909202919091179055565b610204546000906001600160a01b031615612524576102045460405163c455279160e01b81526001600160a01b03858116600483015291821691841690829063c45527919060240160206040518083038186803b1580156124d157600080fd5b505afa1580156124e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125099190614a1f565b6001600160a01b03161415612522576001915050611183565b505b6001600160a01b038084166000908152606a602090815260408083209386168352929052205460ff165b9392505050565b6101c3546001600160a01b031633146125b05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c2d565b6001600160a01b0381166126155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c2d565b6112cd81613091565b6126296000336108ee565b6126455760405162461bcd60e51b8152600401610c2d90614d52565b6118f46135b4565b6126586000336108ee565b6126745760405162461bcd60e51b8152600401610c2d90614d52565b6101f9819055604051819081907f86a43345c8fb4dcf39c32c2e0640a996b51c6d6a107ebe46e958e478fb7f475590600090a350565b60006001600160e01b03198216637965db0b60e01b1480610b2b5750610b2b8261362e565b6000908152606760205260409020546001600160a01b0316151590565b600081815260696020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612721826115d3565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600054610100900460ff1680612773575060005460ff16155b61278f5760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff161580156127ba576000805460ff1961ff0019909116610100171660011790555b6127c2613653565b6127ca6136c6565b80156112cd576000805461ff001916905550565b600054610100900460ff16806127f7575060005460ff16155b6128135760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff1615801561283e576000805460ff1961ff0019909116610100171660011790555b612846613653565b6127ca61372f565b600054610100900460ff1680612867575060005460ff16155b6128835760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff161580156128ae576000805460ff1961ff0019909116610100171660011790555b6128b6613653565b6128be613653565b6127ca613653565b600054610100900460ff16806128df575060005460ff16155b6128fb5760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff16158015612926576000805460ff1961ff0019909116610100171660011790555b6127ca6137ad565b600054610100900460ff1680612947575060005460ff16155b6129635760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff1615801561298e576000805460ff1961ff0019909116610100171660011790555b612996613653565b61299e613653565b6129a88383613827565b8015610d63576000805461ff0019169055505050565b600054610100900460ff16806129d7575060005460ff16155b6129f35760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff161580156128b6576000805460ff1961ff0019909116610100171660011790556128be613653565b6112038282612dc4565b60fb5460ff1615612a755760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610c2d565b60fb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612aaa3390565b6040516001600160a01b03909116815260200160405180910390a1565b6000612ad2826126cf565b612b335760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610c2d565b6000612b3e836115d3565b9050806001600160a01b0316846001600160a01b03161480612b795750836001600160a01b0316612b6e84610bc5565b6001600160a01b0316145b80612b895750612b898185612471565b949350505050565b826001600160a01b0316612ba4826115d3565b6001600160a01b031614612c0c5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610c2d565b6001600160a01b038216612c6e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610c2d565b612c798383836138c5565b612c846000826126ec565b6001600160a01b0383166000908152606860205260408120805460019290612cad908490615016565b90915550506001600160a01b0382166000908152606860205260408120805460019290612cdb908490614fac565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061254e8284614ff7565b600061254e8284614fe3565b600061254e8284615016565b612d6a8282612117565b61120357612d82816001600160a01b031660146138d0565b612d8d8360206138d0565b604051602001612d9e929190614c68565b60408051601f198184030181529082905262461bcd60e51b8252610c2d91600401614d3f565b612dce8282612117565b61120357600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612e063390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b612e548282612117565b1561120357600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b612eea6000336108ee565b6112cd5760405162461bcd60e51b815260206004820152602760248201527f726571756972652061646d696e207065726d697373696f6e20746f20646f20756044820152667067726164657360c81b6064820152608401610c2d565b6000612f50612eb1565b9050612f5b84613ab1565b600083511180612f685750815b15612f7957612f778484613b56565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff1661308a57805460ff191660011781556040516001600160a01b0383166024820152612ff890869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052613b56565b50805460ff19168155613009612eb1565b6001600160a01b0316826001600160a01b0316146130815760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610c2d565b61308a85613c41565b5050505050565b6101c380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600082826130f160995490565b6040516020016131269392919092835260609190911b6bffffffffffffffffffffffff19166020830152603482015260540190565b60408051808303601f190181529082905280516020909101206101fc54632791e9e160e21b8352600483018290529092506000916001600160a01b0390911690639e47a7849060240160206040518083038186803b15801561318757600080fd5b505afa15801561319b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bf9190614a6d565b905060005b8481101561308a576131df6131d860995490565b8390613435565b9150600061321e6101f6805490508460405160200161320091815260200190565b60408051601f19818403018152919052805160209091012090613c81565b905060008061322c83613c8d565b91509150600060405180608001604052808461ffff168152602001600061ffff1681526020018363ffffffff16815260200160006001600160401b0381111561328557634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156132ae578160200160208202803683370190505b509052905060006132be89613f22565b60008181526101fe602090815260409182902085518154838801519488015163ffffffff166401000000000267ffffffff000000001961ffff968716620100000263ffff0000199790941661ffff199093169290921795909516919091171692909217825560608501518051939450859361333f9260018501920190614568565b5090505080896001600160a01b03167f225d9f13e431846a86761e8267ab9fbe832de0777aa2955f076de0b5807836654260405161337f91815260200190565b60405180910390a3505050505080613396906150cd565b90506131c4565b33803b9081156133e65760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b6044820152606401610c2d565b3332146112035760405162461bcd60e51b815260206004820152601a60248201527f70726f787920636f6e7472616374206e6f7420616c6c6f7765640000000000006044820152606401610c2d565b600061254e8284614fac565b6000818310613450578161254e565b5090919050565b613462848484612b91565b61346e84848484613f4b565b6110c35760405162461bcd60e51b8152600401610c2d90614d89565b60606101fb8054610b4290615070565b6060816134bf57506040805180820190915260018152600360fc1b6020820152610b2e565b8160005b81156134e957806134d3816150cd565b91506134e29050600a83614fe3565b91506134c3565b6000816001600160401b0381111561351157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561353b576020820181803683370190505b5090505b8415612b8957613550600183615016565b915061355d600a866150e8565b613568906030614fac565b60f81b81838151811061358b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506135ad600a86614fe3565b945061353f565b60fb5460ff166135fd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c2d565b60fb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612aaa565b60006001600160e01b0319821663780e9d6360e01b1480610b2b5750610b2b82614058565b600054610100900460ff168061366c575060005460ff16155b6136885760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff161580156127ca576000805460ff1961ff00199091166101001716600117905580156112cd576000805461ff001916905550565b600054610100900460ff16806136df575060005460ff16155b6136fb5760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff16158015613726576000805460ff1961ff0019909116610100171660011790555b6127ca33613091565b600054610100900460ff1680613748575060005460ff16155b6137645760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff1615801561378f576000805460ff1961ff0019909116610100171660011790555b60fb805460ff1916905580156112cd576000805461ff001916905550565b600054610100900460ff16806137c6575060005460ff16155b6137e25760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff1615801561380d576000805460ff1961ff0019909116610100171660011790555b600161012d5580156112cd576000805461ff001916905550565b600054610100900460ff1680613840575060005460ff16155b61385c5760405162461bcd60e51b8152600401610c2d90614e73565b600054610100900460ff16158015613887576000805460ff1961ff0019909116610100171660011790555b825161389a9060659060208601906144e4565b5081516138ae9060669060208501906144e4565b508015610d63576000805461ff0019169055505050565b610d638383836140a8565b606060006138df836002614ff7565b6138ea906002614fac565b6001600160401b0381111561390f57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015613939576020820181803683370190505b509050600360fc1b8160008151811061396257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061399f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006139c3846002614ff7565b6139ce906001614fac565b90505b6001811115613a62576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613a1057634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110613a3457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93613a5b81615059565b90506139d1565b50831561254e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c2d565b803b613b155760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c2d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b613bb55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610c2d565b600080846001600160a01b031684604051613bd09190614c1d565b600060405180830381855af49150503d8060008114613c0b576040519150601f19603f3d011682016040523d82523d6000602084013e613c10565b606091505b5091509150613c38828260405180606001604052806027815260200161516a60279139614165565b95945050505050565b613c4a81613ab1565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600061254e82846150e8565b600080600060016101f680549050613ca59190615016565b905060006101f68281548110613ccb57634e487b7160e01b600052603260045260246000fd5b90600052602060002090601091828204019190066002029054906101000a900461ffff16905060006101f68681548110613d1557634e487b7160e01b600052603260045260246000fd5b90600052602060002090601091828204019190066002029054906101000a900461ffff169050816101f68781548110613d5e57634e487b7160e01b600052603260045260246000fd5b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff1602179055506101f6805480613dad57634e487b7160e01b600052603160045260246000fd5b600082815260208120601060001990930192830401805461ffff6002600f8616026101000a021916905591556101f7805485908110613dfc57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16905060006101f78881548110613e4857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050816101f78981548110613e9357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055506101f7805480613ee657634e487b7160e01b600052603160045260246000fd5b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a02191690559055919550909350505050915091565b6000613f336101f580546001019055565b6000613f3f6101f55490565b9050610b2b838261419e565b60006001600160a01b0384163b1561404d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613f8f903390899088908890600401614cdd565b602060405180830381600087803b158015613fa957600080fd5b505af1925050508015613fd9575060408051601f3d908101601f19168201909252613fd691810190614a03565b60015b614033573d808015614007576040519150601f19603f3d011682016040523d82523d6000602084013e61400c565b606091505b50805161402b5760405162461bcd60e51b8152600401610c2d90614d89565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612b89565b506001949350505050565b60006001600160e01b031982166380ac58cd60e01b148061408957506001600160e01b03198216635b5e139f60e01b145b80610b2b57506301ffc9a760e01b6001600160e01b0319831614610b2b565b6001600160a01b038316614103576140fe81609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b614126565b816001600160a01b0316836001600160a01b0316146141265761412683826141b8565b6001600160a01b0382166141425761413d81614255565b610d63565b826001600160a01b0316826001600160a01b031614610d6357610d63828261432e565b6060831561417457508161254e565b8251156141845782518084602001fd5b8160405162461bcd60e51b8152600401610c2d9190614d3f565b611203828260405180602001604052806000815250614372565b600060016141c584611808565b6141cf9190615016565b600083815260986020526040902054909150808214614222576001600160a01b03841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b5060009182526098602090815260408084208490556001600160a01b039094168352609781528383209183525290812055565b60995460009061426790600190615016565b6000838152609a60205260408120546099805493945090928490811061429d57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905080609983815481106142cc57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152609a9091526040808220849055858252812055609980548061431257634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b600061433983611808565b6001600160a01b039093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b61437c83836143a5565b6143896000848484613f4b565b610d635760405162461bcd60e51b8152600401610c2d90614d89565b6001600160a01b0382166143fb5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610c2d565b614404816126cf565b156144515760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c2d565b61445d600083836138c5565b6001600160a01b0382166000908152606860205260408120805460019290614486908490614fac565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546144f090615070565b90600052602060002090601f0160209004810192826145125760008555614558565b82601f1061452b57805160ff1916838001178555614558565b82800160010185558215614558579182015b8281111561455857825182559160200191906001019061453d565b506145649291506145a2565b5090565b828054828255906000526020600020908101928215614558579160200282018281111561455857825182559160200191906001019061453d565b5b8082111561456457600081556001016145a3565b600082601f8301126145c7578081fd5b813560206145dc6145d783614f89565b614f59565b82815281810190858301838502870184018810156145f8578586fd5b855b8581101561462557813561ffff81168114614613578788fd5b845292840192908401906001016145fa565b5090979650505050505050565b600082601f830112614642578081fd5b81356001600160401b0381111561465b5761465b615128565b61466e601f8201601f1916602001614f59565b818152846020838601011115614682578283fd5b816020850160208301379081016020019190915292915050565b803560ff81168114610b2e57600080fd5b6000602082840312156146be578081fd5b813561254e8161513e565b600080604083850312156146db578081fd5b82356146e68161513e565b915060208301356146f68161513e565b809150509250929050565b600080600080600060a08688031215614718578081fd5b85356147238161513e565b945060208601356147338161513e565b935060408601356147438161513e565b92506147516060870161469c565b915061475f6080870161469c565b90509295509295909350565b60008060006060848603121561477f578283fd5b833561478a8161513e565b9250602084013561479a8161513e565b929592945050506040919091013590565b600080600080608085870312156147c0578384fd5b84356147cb8161513e565b935060208501356147db8161513e565b92506040850135915060608501356001600160401b038111156147fc578182fd5b61480887828801614632565b91505092959194509250565b60008060408385031215614826578081fd5b82356148318161513e565b9150602083013580151581146146f6578182fd5b60008060408385031215614857578182fd5b82356148628161513e565b915060208301356001600160401b0381111561487c578182fd5b61488885828601614632565b9150509250929050565b600080604083850312156148a4578182fd5b82356148af8161513e565b946020939093013593505050565b600060208083850312156148cf578182fd5b82356001600160401b038111156148e4578283fd5b8301601f810185136148f4578283fd5b80356149026145d782614f89565b818152838101908385018584028501860189101561491e578687fd5b8694505b838510156149495780356149358161513e565b835260019490940193918501918501614922565b50979650505050505050565b60008060408385031215614967578182fd5b82356001600160401b038082111561497d578384fd5b614989868387016145b7565b9350602085013591508082111561499e578283fd5b50614888858286016145b7565b6000602082840312156149bc578081fd5b5035919050565b600080604083850312156149d5578182fd5b8235915060208301356146f68161513e565b6000602082840312156149f8578081fd5b813561254e81615153565b600060208284031215614a14578081fd5b815161254e81615153565b600060208284031215614a30578081fd5b815161254e8161513e565b600060208284031215614a4c578081fd5b81356001600160401b03811115614a61578182fd5b612b8984828501614632565b600060208284031215614a7e578081fd5b5051919050565b60008060408385031215614a97578182fd5b8235915060208301356001600160401b0381111561487c578182fd5b600080600080600060a08688031215614aca578283fd5b8535945060208601356001600160401b0380821115614ae7578485fd5b614af389838a01614632565b95506040880135915080821115614b08578485fd5b614b1489838a01614632565b94506060880135915080821115614b29578283fd5b50614b3688828901614632565b9250506080860135614b478161513e565b809150509295509295909350565b60008060408385031215614b67578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b83811015614ba557815187529582019590820190600101614b89565b509495945050505050565b60008151808452614bc881602086016020860161502d565b601f01601f19169290920160200192915050565b600061ffff8083511684528060208401511660208501525063ffffffff6040830151166040840152606082015160806060850152612b896080850182614b76565b60008251614c2f81846020870161502d565b9190910192915050565b60008351614c4b81846020880161502d565b835190830190614c5f81836020880161502d565b01949350505050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351614ca081601785016020880161502d565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614cd181602884016020880161502d565b01602801949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614d1090830184614bb0565b9695505050505050565b600060408252614d2d6040830185614b76565b8281036020840152613c388185614b76565b60006020825261254e6020830184614bb0565b60208082526018908201527f726571756972652061646d696e207065726d697373696f6e0000000000000000604082015260600190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60006020825261254e6020830184614bdc565b600060608252614f386060830186614bdc565b6001600160a01b03851660208401528281036040840152614d108185614bb0565b604051601f8201601f191681016001600160401b0381118282101715614f8157614f81615128565b604052919050565b60006001600160401b03821115614fa257614fa2615128565b5060209081020190565b60008219821115614fbf57614fbf6150fc565b500190565b600063ffffffff808316818516808303821115614c5f57614c5f6150fc565b600082614ff257614ff2615112565b500490565b6000816000190483118215151615615011576150116150fc565b500290565b600082821015615028576150286150fc565b500390565b60005b83811015615048578181015183820152602001615030565b838111156110c35750506000910152565b600081615068576150686150fc565b506000190190565b60028104600182168061508457607f821691505b602082108114156150a557634e487b7160e01b600052602260045260246000fd5b50919050565b600061ffff808316818114156150c3576150c36150fc565b6001019392505050565b60006000198214156150e1576150e16150fc565b5060010190565b6000826150f7576150f7615112565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146112cd57600080fd5b6001600160e01b0319811681146112cd57600080fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122027ca5e0877adf287039454e00923731a776500af02ef0bc7691c66786803d64b64736f6c63430008020033"; export class RiverBoxImplV2__factory extends ContractFactory { constructor(signer?: Signer) { super(_abi, _bytecode, signer); } deploy( overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy(overrides || {}) as Promise; } getDeployTransaction( overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { return super.getDeployTransaction(overrides || {}); } attach(address: string): RiverBoxImplV2 { return super.attach(address) as RiverBoxImplV2; } connect(signer: Signer): RiverBoxImplV2__factory { return super.connect(signer) as RiverBoxImplV2__factory; } static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): RiverBoxImplV2Interface { return new utils.Interface(_abi) as RiverBoxImplV2Interface; } static connect( address: string, signerOrProvider: Signer | Provider ): RiverBoxImplV2 { return new Contract(address, _abi, signerOrProvider) as RiverBoxImplV2; } }