/* 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 { RivermenScrollsImpl, RivermenScrollsImplInterface, } from "../RivermenScrollsImpl"; 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: "FusedItemAwarded", 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: [], name: "UPGRADER_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], 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: "uint256[]", name: "tokenIds", type: "uint256[]", }, { internalType: "bool", name: "fromPawn", type: "bool", }, ], name: "fuse", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, { internalType: "bool", name: "isPawn", type: "bool", }, ], name: "fusionCount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], 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: "address", name: "_rivermenAddress", type: "address", }, { 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: "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: [], name: "pause", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "paused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "proxyRegistryAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], 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: [], name: "rivermen", outputs: [ { internalType: "contract IRiverMen", name: "", type: "address", }, ], stateMutability: "view", 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: "uint16[]", name: "locationIds", type: "uint16[]", }, { internalType: "uint16[]", name: "parentLocationIds", type: "uint16[]", }, { internalType: "uint16[][]", name: "listChildLocationIds", type: "uint16[][]", }, ], name: "setHierarchy", 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: "uint256[]", name: "parts", type: "uint256[]", }, ], internalType: "struct RivermenScrollsData.Product", name: "", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "locationId", type: "uint256", }, ], name: "tokenHierarchy", outputs: [ { components: [ { internalType: "uint16", name: "parentLocationId", type: "uint16", }, { internalType: "uint16[]", name: "childLocationIds", type: "uint16[]", }, ], internalType: "struct RivermenScrollsData.Hierarchy", 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: "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: "tokenIds", type: "uint256[]", }, { internalType: "bool", name: "fromPawn", type: "bool", }, { internalType: "bool", name: "checkOwner", type: "bool", }, ], name: "verifyFusion", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, ]; const _bytecode = "0x60a06040523060601b6080523480156200001857600080fd5b50600354610100900460ff168062000033575060035460ff16155b6200009b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600354610100900460ff16158015620000c7576003805460ff1961ff0019909116610100171660011790555b8015620000da576003805461ff00191690555b5060805160601c6147596200010f60003960008181610bcb01528181610c0b01528181610dd20152610e1201526147596000f3fe60806040526004361061025c5760003560e01c80635e51191e1161014457806395d89b41116100b6578063c87b56dd1161007a578063c87b56dd14610727578063cd7c032614610747578063d547741f14610768578063e985e9c514610788578063f2fde38b146107a8578063f72c0d8b146107c85761025c565b806395d89b411461069c578063a217fddf146106b1578063a22cb465146106c6578063ac7905a0146106e6578063b88d4fde146107075761025c565b80637a85c3e9116101085780637a85c3e9146105cf5780637bb7c0d8146105ef578063817e3d011461060f5780638456cb59146106485780638da5cb5b1461065d57806391d148541461067c5761025c565b80635e51191e146105455780636352211e146105655780636c0360eb1461058557806370a082311461059a578063715018a6146105ba5761025c565b806336568abe116101dd5780634f1ef286116101a15780634f1ef2861461048d5780634f6ccce7146104a057806355f804b3146104c057806356b2f0a2146104e05780635c975abb146105005780635d4e7baf146105185761025c565b806336568abe146103eb5780633659cfe61461040b5780633dc60c3b1461042b5780633f4ba83a1461045857806342842e0e1461046d5761025c565b806318160ddd1161022457806318160ddd1461033c57806323b872dd1461035b578063248a9ca31461037b5780632f2ff15d146103ab5780632f745c59146103cb5761025c565b806301ffc9a71461026157806306bfcec61461029657806306fdde03146102cd578063081812fc146102e2578063095ea7b31461031a575b600080fd5b34801561026d57600080fd5b5061028161027c366004613f68565b6107fc565b60405190151581526020015b60405180910390f35b3480156102a257600080fd5b506040805180820190915260058152640312e302e360dc1b60208201525b60405161028d919061421f565b3480156102d957600080fd5b506102c061080f565b3480156102ee57600080fd5b506103026102fd366004613f2c565b6108a1565b6040516001600160a01b03909116815260200161028d565b34801561032657600080fd5b5061033a610335366004613d92565b61093b565b005b34801561034857600080fd5b50609c545b60405190815260200161028d565b34801561036757600080fd5b5061033a610376366004613c07565b610a51565b34801561038757600080fd5b5061034d610396366004613f2c565b600090815260fe602052604090206001015490565b3480156103b757600080fd5b5061033a6103c6366004613f44565b610a82565b3480156103d757600080fd5b5061034d6103e6366004613d92565b610aa9565b3480156103f757600080fd5b5061033a610406366004613f44565b610b42565b34801561041757600080fd5b5061033a610426366004613b97565b610bc0565b34801561043757600080fd5b5061044b610446366004613f2c565b610c89565b60405161028d919061447f565b34801561046457600080fd5b5061033a610d7b565b34801561047957600080fd5b5061033a610488366004613c07565b610dac565b61033a61049b366004613ce4565b610dc7565b3480156104ac57600080fd5b5061034d6104bb366004613f2c565b610e7d565b3480156104cc57600080fd5b5061033a6104db366004613fa0565b610f1e565b3480156104ec57600080fd5b5061033a6104fb366004613dbd565b610f59565b34801561050c57600080fd5b5060cc5460ff16610281565b34801561052457600080fd5b50610538610533366004613f2c565b61107c565b60405161028d919061441c565b34801561055157600080fd5b5061033a610560366004613e8f565b611137565b34801561057157600080fd5b50610302610580366004613f2c565b6114b7565b34801561059157600080fd5b506102c061152e565b3480156105a657600080fd5b5061034d6105b5366004613b97565b6115bd565b3480156105c657600080fd5b5061033a611644565b3480156105db57600080fd5b506102816105ea366004613ed1565b6116a9565b3480156105fb57600080fd5b5061033a61060a366004613d31565b611a8e565b34801561061b57600080fd5b5061034d61062a3660046140d4565b15156000908152600160209081526040808320938352929052205490565b34801561065457600080fd5b5061033a611c0a565b34801561066957600080fd5b50610162546001600160a01b0316610302565b34801561068857600080fd5b50610281610697366004613f44565b611c39565b3480156106a857600080fd5b506102c0611c64565b3480156106bd57600080fd5b5061034d600081565b3480156106d257600080fd5b5061033a6106e1366004613cb0565b611c73565b3480156106f257600080fd5b506101f954610302906001600160a01b031681565b34801561071357600080fd5b5061033a610722366004613c47565b611d45565b34801561073357600080fd5b506102c0610742366004613f2c565b611d77565b34801561075357600080fd5b506101fa54610302906001600160a01b031681565b34801561077457600080fd5b5061033a610783366004613f44565b611e39565b34801561079457600080fd5b506102816107a3366004613bcf565b611e5f565b3480156107b457600080fd5b5061033a6107c3366004613b97565b611f40565b3480156107d457600080fd5b5061034d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b600061080782612009565b90505b919050565b60606068805461081e906145f4565b80601f016020809104026020016040519081016040528092919081815260200182805461084a906145f4565b80156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905090565b6000818152606a60205260408120546001600160a01b031661091f5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606c60205260409020546001600160a01b031690565b6000610946826114b7565b9050806001600160a01b0316836001600160a01b031614156109b45760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610916565b336001600160a01b03821614806109d057506109d081336107a3565b610a425760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610916565b610a4c838361202e565b505050565b610a5b338261209c565b610a775760405162461bcd60e51b8152600401610916906143cb565b610a4c838383612173565b600082815260fe6020526040902060010154610a9f81335b61231e565b610a4c8383612382565b6000610ab4836115bd565b8210610b165760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610916565b506001600160a01b0382166000908152609a602090815260408083208484529091529020545b92915050565b6001600160a01b0381163314610bb25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610916565b610bbc8282612408565b5050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610c095760405162461bcd60e51b8152600401610916906142bb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c3b61246f565b6001600160a01b031614610c615760405162461bcd60e51b815260040161091690614307565b610c6a8161249d565b60408051600080825260208201909252610c8691839190612513565b50565b604080518082019091526000815260606020820152610cbf826000908152606a60205260409020546001600160a01b0316151590565b610cfe5760405162461bcd60e51b815260206004820152601060248201526f546f6b656e206e6f742065786973747360801b6044820152606401610916565b6000828152602081815260409182902082518084018452815461ffff16815260018201805485518186028101860190965280865291949293858101939290830182828015610d6b57602002820191906000526020600020905b815481526020019060010190808311610d57575b5050505050815250509050919050565b610d86600033610697565b610da25760405162461bcd60e51b815260040161091690614232565b610daa61265e565b565b610a4c83838360405180602001604052806000815250611d45565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e105760405162461bcd60e51b8152600401610916906142bb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e4261246f565b6001600160a01b031614610e685760405162461bcd60e51b815260040161091690614307565b610e718261249d565b610bbc82826001612513565b6000610e88609c5490565b8210610eeb5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610916565b609c8281548110610f0c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b610f29600033610697565b610f455760405162461bcd60e51b815260040161091690614232565b8051610bbc906101fb9060208401906138b9565b610f64600033610697565b610f805760405162461bcd60e51b815260040161091690614232565b60005b8351811015611076576040518060400160405280848381518110610fb757634e487b7160e01b600052603260045260246000fd5b602002602001015161ffff168152602001838381518110610fe857634e487b7160e01b600052603260045260246000fd5b60200260200101518152506002600086848151811061101757634e487b7160e01b600052603260045260246000fd5b60209081029190910181015161ffff90811683528282019390935260409091016000208351815461ffff19169316929092178255828101518051611061926001850192019061393d565b509050508061106f9061462f565b9050610f83565b50505050565b60408051808201909152600081526060602082015260008281526002602090815260409182902082518084018452815461ffff16815260018201805485518186028101860190965280865291949293858101939290830182828015610d6b57602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116110ef5790505050505050815250509050919050565b60cc5460ff161561115a5760405162461bcd60e51b815260040161091690614353565b60026101305414156111ae5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610916565b6002610130556111bc6126f1565b6111c8828260016116a9565b6112145760405162461bcd60e51b815260206004820152601a60248201527f6e6f7420612076616c6964206c697374206f6620746f6b656e730000000000006044820152606401610916565b600081611263576000808460008151811061123f57634e487b7160e01b600052603260045260246000fd5b60209081029190910181015182528101919091526040016000205461ffff16611316565b6101f95483516001600160a01b0390911690633dc60c3b90859060009061129a57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b81526004016112c091815260200190565b60006040518083038186803b1580156112d857600080fd5b505afa1580156112ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113149190810190613fd2565b515b61ffff80821660009081526002602090815260408083205481518083019092529093168084529083018790529293505b855181101561140f578415156000908152600160208190526040822088516113ae93908a908690811061138957634e487b7160e01b600052603260045260246000fd5b602002602001015181526020019081526020016000205461278990919063ffffffff16565b851515600090815260016020526040812088519091908990859081106113e457634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002081905550806114089061462f565b9050611346565b50600061141b33612795565b6000818152602081815260409091208451815461ffff191661ffff9091161781558482015180519394508593919261145b926001850192909101906139e1565b50905050806114673390565b6001600160a01b03167fb6d4c3b1e9d5c5c373b22ac6ea336bcdd0348e7250b4875a980281d00d23c270426040516114a191815260200190565b60405180910390a3505060016101305550505050565b6000818152606a60205260408120546001600160a01b0316806108075760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610916565b6101fb805461153c906145f4565b80601f0160208091040260200160405190810160405280929190818152602001828054611568906145f4565b80156115b55780601f1061158a576101008083540402835291602001916115b5565b820191906000526020600020905b81548152906001019060200180831161159857829003601f168201915b505050505081565b60006001600160a01b0382166116285760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610916565b506001600160a01b03166000908152606b602052604090205490565b610162546001600160a01b0316331461169f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610916565b610daa60006127be565b60008351600014156116bd57506000611a87565b6000846000815181106116e057634e487b7160e01b600052603260045260246000fd5b60200260200101519050600084611700576116fa82610c89565b51611783565b6101f954604051633dc60c3b60e01b8152600481018490526001600160a01b0390911690633dc60c3b9060240160006040518083038186803b15801561174557600080fd5b505afa158015611759573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117819190810190613fd2565b515b61ffff80821660009081526002602052604090205491925016806117ad5760009350505050611a87565b865161ffff8216600090815260026020526040902060010154146117d75760009350505050611a87565b60006117e1613a1b565b60008060005b8b51811015611a7a578b818151811061181057634e487b7160e01b600052603260045260246000fd5b6020908102919091018101518c1515600090815260018352604080822083835290935291909120549098501561185157600098505050505050505050611a87565b8a6118655761185f88610c89565b516118e8565b6101f954604051633dc60c3b60e01b8152600481018a90526001600160a01b0390911690633dc60c3b9060240160006040518083038186803b1580156118aa57600080fd5b505afa1580156118be573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118e69190810190613fd2565b515b61ffff81811660009081526002602052604090205491985087811691161461191b57600098505050505050505050611a87565b8a61192e57611929886114b7565b6119ab565b6101f9546040516331a9108f60e11b8152600481018a90526001600160a01b0390911690636352211e9060240160206040518083038186803b15801561197357600080fd5b505afa158015611987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ab9190613bb3565b94508980156119c357506001600160a01b0385163314155b156119d957600098505050505050505050611a87565b6119e561010088614546565b61ffff1692506119f76101008861464a565b61ffff166001901b915081848460028110611a2257634e487b7160e01b600052603260045260246000fd5b60200201511615611a3e57600098505050505050505050611a87565b81848460028110611a5f57634e487b7160e01b600052603260045260246000fd5b6020020180519091179052611a738161462f565b90506117e7565b5060019750505050505050505b9392505050565b600354610100900460ff1680611aa7575060035460ff16155b611ac35760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff16158015611aee576003805460ff1961ff0019909116610100171660011790555b611b396040518060400160405280600f81526020016e52697665726d656e5363726f6c6c7360881b81525060405180604001604052806002815260200161525360f01b815250612811565b611b416128a1565b611b49612925565b611b51612995565b611b59612a0d565b611b61612995565b611b69612a75565b611b74600033612adc565b611b9e7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333612adc565b6101f980546001600160a01b0319166001600160a01b0386161790558251611bce906101fb9060208601906138b9565b506101fa80546001600160a01b0319166001600160a01b038416179055611bf3612ae6565b8015611076576003805461ff001916905550505050565b611c15600033610697565b611c315760405162461bcd60e51b815260040161091690614232565b610daa612ae6565b600091825260fe602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60606069805461081e906145f4565b6001600160a01b038216331415611ccc5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610916565b336000818152606d602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611d39911515815260200190565b60405180910390a35050565b611d4f338361209c565b611d6b5760405162461bcd60e51b8152600401610916906143cb565b61107684848484612b3e565b6000818152606a60205260409020546060906001600160a01b0316611dde5760405162461bcd60e51b815260206004820152601f60248201527f55524920717565727920666f72206e6f6e6578697374656e7420746f6b656e006044820152606401610916565b6000611de8612b71565b90506000815111611e085760405180602001604052806000815250611a87565b80611e1284612b81565b604051602001611e2392919061413e565b6040516020818303038152906040529392505050565b600082815260fe6020526040902060010154611e558133610a9a565b610a4c8383612408565b6101fa546000906001600160a01b031615611f12576101fa5460405163c455279160e01b81526001600160a01b03858116600483015291821691841690829063c45527919060240160206040518083038186803b158015611ebf57600080fd5b505afa158015611ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef79190613bb3565b6001600160a01b03161415611f10576001915050610b3c565b505b6001600160a01b038084166000908152606d602090815260408083209386168352929052205460ff16611a87565b610162546001600160a01b03163314611f9b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610916565b6001600160a01b0381166120005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610916565b610c86816127be565b60006001600160e01b03198216637965db0b60e01b1480610807575061080782612c9b565b6000818152606c6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612063826114b7565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152606a60205260408120546001600160a01b03166121155760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610916565b6000612120836114b7565b9050806001600160a01b0316846001600160a01b0316148061215b5750836001600160a01b0316612150846108a1565b6001600160a01b0316145b8061216b575061216b8185611e5f565b949350505050565b826001600160a01b0316612186826114b7565b6001600160a01b0316146121ee5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610916565b6001600160a01b0382166122505760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610916565b61225b838383612cc0565b61226660008261202e565b6001600160a01b0383166000908152606b6020526040812080546001929061228f90849061459a565b90915550506001600160a01b0382166000908152606b602052604081208054600192906122bd90849061452e565b90915550506000818152606a602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6123288282611c39565b610bbc57612340816001600160a01b03166014612cee565b61234b836020612cee565b60405160200161235c92919061416d565b60408051601f198184030181529082905262461bcd60e51b82526109169160040161421f565b61238c8282611c39565b610bbc57600082815260fe602090815260408083206001600160a01b03851684529091529020805460ff191660011790556123c43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6124128282611c39565b15610bbc57600082815260fe602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6124c77f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333610697565b610c865760405162461bcd60e51b815260206004820152601b60248201527f72657175697265207570677261646572207065726d697373696f6e00000000006044820152606401610916565b600061251d61246f565b905061252884612ecf565b6000835111806125355750815b15612546576125448484612f74565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff1661265757805460ff191660011781556040516001600160a01b03831660248201526125c590869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052612f74565b50805460ff191681556125d661246f565b6001600160a01b0316826001600160a01b03161461264e5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610916565b6126578561305f565b5050505050565b60cc5460ff166126a75760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610916565b60cc805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b33803b90811561273a5760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b6044820152606401610916565b333214610bbc5760405162461bcd60e51b815260206004820152601a60248201527f70726f787920636f6e7472616374206e6f7420616c6c6f7765640000000000006044820152606401610916565b6000611a87828461452e565b60006127a66101f880546001019055565b60006127b26101f85490565b9050610807838261309f565b61016280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600354610100900460ff168061282a575060035460ff16155b6128465760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff16158015612871576003805460ff1961ff0019909116610100171660011790555b6128796130b9565b6128816130b9565b61288b838361312c565b8015610a4c576003805461ff0019169055505050565b600354610100900460ff16806128ba575060035460ff16155b6128d65760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff16158015612901576003805460ff1961ff0019909116610100171660011790555b6129096130b9565b6129116131ca565b8015610c86576003805461ff001916905550565b600354610100900460ff168061293e575060035460ff16155b61295a5760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff16158015612985576003805460ff1961ff0019909116610100171660011790555b61298d6130b9565b612911613233565b600354610100900460ff16806129ae575060035460ff16155b6129ca5760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff161580156129f5576003805460ff1961ff0019909116610100171660011790555b6129fd6130b9565b612a056130b9565b6129116130b9565b600354610100900460ff1680612a26575060035460ff16155b612a425760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff16158015612a6d576003805460ff1961ff0019909116610100171660011790555b6129116132b1565b600354610100900460ff1680612a8e575060035460ff16155b612aaa5760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff161580156129fd576003805460ff1961ff001990911661010017166001179055612a056130b9565b610bbc8282612382565b60cc5460ff1615612b095760405162461bcd60e51b815260040161091690614353565b60cc805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586126d43390565b612b49848484612173565b612b558484848461332b565b6110765760405162461bcd60e51b815260040161091690614269565b60606101fb805461081e906145f4565b606081612ba657506040805180820190915260018152600360fc1b602082015261080a565b8160005b8115612bd05780612bba8161462f565b9150612bc99050600a83614567565b9150612baa565b6000816001600160401b03811115612bf857634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612c22576020820181803683370190505b5090505b841561216b57612c3760018361459a565b9150612c44600a8661466b565b612c4f90603061452e565b60f81b818381518110612c7257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350612c94600a86614567565b9450612c26565b60006001600160e01b0319821663780e9d6360e01b1480610807575061080782613438565b60cc5460ff1615612ce35760405162461bcd60e51b815260040161091690614353565b610a4c838383613488565b60606000612cfd83600261457b565b612d0890600261452e565b6001600160401b03811115612d2d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612d57576020820181803683370190505b509050600360fc1b81600081518110612d8057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612dbd57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000612de184600261457b565b612dec90600161452e565b90505b6001811115612e80576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612e2e57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110612e5257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93612e79816145dd565b9050612def565b508315611a875760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610916565b803b612f335760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610916565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b612fd35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610916565b600080846001600160a01b031684604051612fee9190614122565b600060405180830381855af49150503d8060008114613029576040519150601f19603f3d011682016040523d82523d6000602084013e61302e565b606091505b509150915061305682826040518060600160405280602781526020016146fd60279139613545565b95945050505050565b61306881612ecf565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b610bbc82826040518060200160405280600081525061357e565b600354610100900460ff16806130d2575060035460ff16155b6130ee5760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff16158015612911576003805460ff1961ff0019909116610100171660011790558015610c86576003805461ff001916905550565b600354610100900460ff1680613145575060035460ff16155b6131615760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff1615801561318c576003805460ff1961ff0019909116610100171660011790555b825161319f9060689060208601906138b9565b5081516131b39060699060208501906138b9565b508015610a4c576003805461ff0019169055505050565b600354610100900460ff16806131e3575060035460ff16155b6131ff5760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff1615801561322a576003805460ff1961ff0019909116610100171660011790555b612911336127be565b600354610100900460ff168061324c575060035460ff16155b6132685760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff16158015613293576003805460ff1961ff0019909116610100171660011790555b60cc805460ff191690558015610c86576003805461ff001916905550565b600354610100900460ff16806132ca575060035460ff16155b6132e65760405162461bcd60e51b81526004016109169061437d565b600354610100900460ff16158015613311576003805460ff1961ff0019909116610100171660011790555b6001610130558015610c86576003805461ff001916905550565b60006001600160a01b0384163b1561342d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061336f9033908990889088906004016141e2565b602060405180830381600087803b15801561338957600080fd5b505af19250505080156133b9575060408051601f3d908101601f191682019092526133b691810190613f84565b60015b613413573d8080156133e7576040519150601f19603f3d011682016040523d82523d6000602084013e6133ec565b606091505b50805161340b5760405162461bcd60e51b815260040161091690614269565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061216b565b506001949350505050565b60006001600160e01b031982166380ac58cd60e01b148061346957506001600160e01b03198216635b5e139f60e01b145b8061080757506301ffc9a760e01b6001600160e01b0319831614610807565b6001600160a01b0383166134e3576134de81609c80546000838152609d60205260408120829055600182018355919091527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c0155565b613506565b816001600160a01b0316836001600160a01b0316146135065761350683826135b1565b6001600160a01b0382166135225761351d8161364e565b610a4c565b826001600160a01b0316826001600160a01b031614610a4c57610a4c8282613727565b60608315613554575081611a87565b8251156135645782518084602001fd5b8160405162461bcd60e51b8152600401610916919061421f565b613588838361376b565b613595600084848461332b565b610a4c5760405162461bcd60e51b815260040161091690614269565b600060016135be846115bd565b6135c8919061459a565b6000838152609b602052604090205490915080821461361b576001600160a01b0384166000908152609a602090815260408083208584528252808320548484528184208190558352609b90915290208190555b506000918252609b602090815260408084208490556001600160a01b039094168352609a81528383209183525290812055565b609c546000906136609060019061459a565b6000838152609d6020526040812054609c805493945090928490811061369657634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905080609c83815481106136c557634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152609d9091526040808220849055858252812055609c80548061370b57634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000613732836115bd565b6001600160a01b039093166000908152609a602090815260408083208684528252808320859055938252609b9052919091209190915550565b6001600160a01b0382166137c15760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610916565b6000818152606a60205260409020546001600160a01b0316156138265760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610916565b61383260008383612cc0565b6001600160a01b0382166000908152606b6020526040812080546001929061385b90849061452e565b90915550506000818152606a602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546138c5906145f4565b90600052602060002090601f0160209004810192826138e7576000855561392d565b82601f1061390057805160ff191683800117855561392d565b8280016001018555821561392d579182015b8281111561392d578251825591602001919060010190613912565b50613939929150613a39565b5090565b82805482825590600052602060002090600f0160109004810192821561392d5791602002820160005b838211156139a657835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302613966565b80156139d45782816101000a81549061ffff02191690556002016020816001010492830192600103026139a6565b5050613939929150613a39565b82805482825590600052602060002090810192821561392d579160200282018281111561392d578251825591602001919060010190613912565b60405180604001604052806002906020820280368337509192915050565b5b808211156139395760008155600101613a3a565b600082601f830112613a5e578081fd5b81356020613a73613a6e8361450b565b6144db565b8281528181019085830183850287018401881015613a8f578586fd5b855b85811015613ab6578135613aa4816146ec565b84529284019290840190600101613a91565b5090979650505050505050565b600082601f830112613ad3578081fd5b81356020613ae3613a6e8361450b565b8281528181019085830183850287018401881015613aff578586fd5b855b85811015613ab657813584529284019290840190600101613b01565b8035801515811461080a57600080fd5b600082601f830112613b3d578081fd5b81356001600160401b03811115613b5657613b566146ab565b613b69601f8201601f19166020016144db565b818152846020838601011115613b7d578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215613ba8578081fd5b8135611a87816146c1565b600060208284031215613bc4578081fd5b8151611a87816146c1565b60008060408385031215613be1578081fd5b8235613bec816146c1565b91506020830135613bfc816146c1565b809150509250929050565b600080600060608486031215613c1b578081fd5b8335613c26816146c1565b92506020840135613c36816146c1565b929592945050506040919091013590565b60008060008060808587031215613c5c578182fd5b8435613c67816146c1565b93506020850135613c77816146c1565b92506040850135915060608501356001600160401b03811115613c98578182fd5b613ca487828801613b2d565b91505092959194509250565b60008060408385031215613cc2578182fd5b8235613ccd816146c1565b9150613cdb60208401613b1d565b90509250929050565b60008060408385031215613cf6578182fd5b8235613d01816146c1565b915060208301356001600160401b03811115613d1b578182fd5b613d2785828601613b2d565b9150509250929050565b600080600060608486031215613d45578081fd5b8335613d50816146c1565b925060208401356001600160401b03811115613d6a578182fd5b613d7686828701613b2d565b9250506040840135613d87816146c1565b809150509250925092565b60008060408385031215613da4578182fd5b8235613daf816146c1565b946020939093013593505050565b600080600060608486031215613dd1578081fd5b83356001600160401b0380821115613de7578283fd5b613df387838801613a4e565b9450602091508186013581811115613e09578384fd5b613e1588828901613a4e565b945050604086013581811115613e29578384fd5b86019050601f81018713613e3b578283fd5b8035613e49613a6e8261450b565b81815283810190838501865b84811015613e7e57613e6c8c888435890101613a4e565b84529286019290860190600101613e55565b505080955050505050509250925092565b60008060408385031215613ea1578182fd5b82356001600160401b03811115613eb6578283fd5b613ec285828601613ac3565b925050613cdb60208401613b1d565b600080600060608486031215613ee5578081fd5b83356001600160401b03811115613efa578182fd5b613f0686828701613ac3565b935050613f1560208501613b1d565b9150613f2360408501613b1d565b90509250925092565b600060208284031215613f3d578081fd5b5035919050565b60008060408385031215613f56578182fd5b823591506020830135613bfc816146c1565b600060208284031215613f79578081fd5b8135611a87816146d6565b600060208284031215613f95578081fd5b8151611a87816146d6565b600060208284031215613fb1578081fd5b81356001600160401b03811115613fc6578182fd5b61216b84828501613b2d565b60006020808385031215613fe4578182fd5b82516001600160401b0380821115613ffa578384fd5b908401906080828703121561400d578384fd5b61401760806144db565b8251614022816146ec565b815282840151614031816146ec565b81850152604083015163ffffffff8116811461404b578586fd5b6040820152606083015182811115614061578586fd5b80840193505086601f840112614075578485fd5b82519150614085613a6e8361450b565b82815284810190848601868502860187018a10156140a1578788fd5b8795505b848610156140c35780518352600195909501949186019186016140a5565b506060830152509695505050505050565b600080604083850312156140e6578182fd5b82359150613cdb60208401613b1d565b6000815180845261410e8160208601602086016145b1565b601f01601f19169290920160200192915050565b600082516141348184602087016145b1565b9190910192915050565b600083516141508184602088016145b1565b8351908301906141648183602088016145b1565b01949350505050565b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516141a58160178501602088016145b1565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516141d68160288401602088016145b1565b01602801949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614215908301846140f6565b9695505050505050565b600060208252611a8760208301846140f6565b60208082526018908201527f726571756972652061646d696e207065726d697373696f6e0000000000000000604082015260600190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600060208083526060830161ffff80865116838601528286015160408087015282815180855260808801915085830194508692505b8083101561447357845184168252938501936001929092019190850190614451565b50979650505050505050565b6020808252825161ffff16828201528281015160408084015280516060840181905260009291820190839060808601905b808310156144d057835182529284019260019290920191908401906144b0565b509695505050505050565b604051601f8201601f191681016001600160401b0381118282101715614503576145036146ab565b604052919050565b60006001600160401b03821115614524576145246146ab565b5060209081020190565b600082198211156145415761454161467f565b500190565b600061ffff8084168061455b5761455b614695565b92169190910492915050565b60008261457657614576614695565b500490565b60008160001904831182151516156145955761459561467f565b500290565b6000828210156145ac576145ac61467f565b500390565b60005b838110156145cc5781810151838201526020016145b4565b838111156110765750506000910152565b6000816145ec576145ec61467f565b506000190190565b60028104600182168061460857607f821691505b6020821081141561462957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156146435761464361467f565b5060010190565b600061ffff8084168061465f5761465f614695565b92169190910692915050565b60008261467a5761467a614695565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610c8657600080fd5b6001600160e01b031981168114610c8657600080fd5b61ffff81168114610c8657600080fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220aa82e2b34cba5167abe49dc302f1c749595536a080e6c9813841cdfb491db98a64736f6c63430008020033"; export class RivermenScrollsImpl__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): RivermenScrollsImpl { return super.attach(address) as RivermenScrollsImpl; } connect(signer: Signer): RivermenScrollsImpl__factory { return super.connect(signer) as RivermenScrollsImpl__factory; } static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): RivermenScrollsImplInterface { return new utils.Interface(_abi) as RivermenScrollsImplInterface; } static connect( address: string, signerOrProvider: Signer | Provider ): RivermenScrollsImpl { return new Contract(address, _abi, signerOrProvider) as RivermenScrollsImpl; } }