1 tx
5 calls
constructor
No constructor.
functions
allTokensDataOfOwner
viewfunction allTokensDataOfOwner(address owner) view returns (tuple[])
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
billAddresses
viewfunction billAddresses(uint256) view returns (address)
claimablePayout
viewfunction claimablePayout(uint256 tokenId) view returns (uint256 payout)
claimedPayout
viewfunction claimedPayout(uint256 tokenId) view returns (uint256 payout)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
FACTORY_ROLE
viewfunction FACTORY_ROLE() view returns (bytes32)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getClaimApproved
viewfunction getClaimApproved(uint256 tokenId) view returns (address operator)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
getTokensOfOwnerByIndexes
viewfunction getTokensOfOwnerByIndexes(address owner, uint256 start, uint256 end) view returns (tuple[])
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isApprovedClaimOrOwner
viewfunction isApprovedClaimOrOwner(address operator, uint256 tokenId) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isClaimApprovedForAll
viewfunction isClaimApprovedForAll(address owner, address operator) view returns (bool)
MINTER_ROLE
viewfunction MINTER_ROLE() view returns (bytes32)
name
viewfunction name() view returns (string)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
payoutToken
viewfunction payoutToken(uint256 tokenId) view returns (address token)
pendingPayout
viewfunction pendingPayout(uint256 tokenId) view returns (uint256 pendingPayoutAmount)
pendingVesting
viewfunction pendingVesting(uint256 tokenId) view returns (uint256 pendingSeconds)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenDataOfOwnerByIndex
viewfunction tokenDataOfOwnerByIndex(address owner, uint256 index) view returns (tuple tokenData)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
URI_SETTER_ROLE
viewfunction URI_SETTER_ROLE() view returns (bytes32)
uriLocked
viewfunction uriLocked() view returns (bool)
vestedPayout
viewfunction vestedPayout(uint256 tokenId) view returns (uint256 payout)
vestedPayoutAtTime
viewfunction vestedPayoutAtTime(uint256 tokenId, uint256 timestamp) view returns (uint256 payout)
vestingPayout
viewfunction vestingPayout(uint256 tokenId) view returns (uint256 payout)
vestingPeriod
viewfunction vestingPeriod(uint256 tokenId) view returns (uint256 vestingStart, uint256 vestingEnd)
addMinter
nonpayablefunction addMinter(address minter)
approve
nonpayablefunction approve(address to, uint256 tokenId)
claim
nonpayablefunction claim(uint256 tokenId)
claimMany
nonpayablefunction claimMany(uint256[] _tokenIds)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(string name_, string symbol_, string baseTokenURI_, address factory_, address owner_)
lockURI
nonpayablefunction lockURI()
mint
nonpayablefunction mint(address to, address billAddress) returns (uint256 newTokenId)
mintMany
nonpayablefunction mintMany(uint256 amount, address to, address billAddress)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseURI
nonpayablefunction setBaseURI(string baseTokenURI)
setClaimApproval
nonpayablefunction setClaimApproval(address operator, bool approved, uint256 tokenId)
setClaimApprovalForAll
nonpayablefunction setClaimApprovalForAll(address operator, bool approved)
setTokenURI
nonpayablefunction setTokenURI(uint256 tokenId, string _tokenURI)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BaseTokenUriChanged
event BaseTokenUriChanged(string newUri)
ClaimApproval
event ClaimApproval(address indexed owner, address indexed spender, uint256 indexed tokenId, bool approved)
ClaimApprovalForAll
event ClaimApprovalForAll(address indexed owner, address indexed spender, bool approved)
Initialized
event Initialized(uint8 version)
PayoutClaimed
event PayoutClaimed(uint256 indexed tokenId, address indexed recipient, uint256 claimAmount)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
UriLocked
event UriLocked()
errors
No errors.
creation bytecode
0x6080806040523461002157610130805460ff19169055613d0390816100278239f35b600080fdfe608080604052600436101561001357600080fd5b60e0600035811c91826301ffc9a7146123685750816304a0fb171461233f57816306fdde031461229a578163081812fc1461227c578163095ea7b314612102578163162094c414611f2057816318160ddd14611f025781631bd4246214611e4557816320c5ab6a14611e21578163231bdda314611d9657816323b872dd14611d6d578163248a9ca314611d3e5781632f2ff15d14611cc85781632f745c5914611ca1578163323418c114611c1657816336568abe14611b84578163379607f514611b685781633a52915a14611afd5781633bf6b0ec14611ab857816342842e0e14611a905781634f6ccce7146119ff57816355f804b314611831578163576561d21461177e5781636352211e1461174e5781636bec73971461171d57816370a08231146116fa5781637f345710146116bf578163807c35311461168a5781638092ca92146115d657816381d0526d1461156b57816384e968e61461146f575080638b9cb90b146113d05780638e021c061461134f5780639010d07c1461130857806391d14854146112bb578063925489a81461124657806395d89b4114611178578063983b2d56146110345780639e0bd80814610fc9578063a217fddf14610fad578063a22cb46514610ed9578063a2e8a50c14610e82578063ada881da14610e4d578063b88d4fde14610dee578063c00fdb9a14610d44578063c87b56dd14610d0d578063ca15c87314610ce1578063d113cfba14610bfa578063d539139314610bd1578063d547741f14610b90578063d6d0faee1461037f578063d744515f1461035e578063db900b9d1461033f578063e985e9c5146102e95763ee1fe2ad1461027e57600080fd5b346102e45760403660031901126102e45760206102dc61029c612436565b6102a461244c565b90600080516020613c8e8339815191526000526097845260406000203360005284526102d760ff60406000205416613404565b61345b565b604051908152f35b600080fd5b346102e45760403660031901126102e457610302612436565b61030a61244c565b9060018060a01b03809116600052606a60205260406000209116600052602052602060ff604060002054166040519015158152f35b346102e45760203660031901126102e45760206102dc42600435613b6f565b346102e45760403660031901126102e45760206102dc602435600435613b6f565b346102e45760a03660031901126102e4576004356001600160401b0381116102e4576103af9036906004016124f0565b6024356001600160401b0381116102e4576103ce9036906004016124f0565b6044356001600160401b0381116102e4576103ed9036906004016124f0565b606435916001600160a01b039182841684036102e4576084359183831683036102e4576000549560ff8760081c161596878098610b83575b8015610b6c575b15610b105760ff19811660011760005587610afe575b5061045d60ff60005460081c1661045881613320565b613320565b8051906001600160401b03821161091e57819061047b606554612a4a565b601f8111610a91575b50602090601f8311600114610a2457600092610a19575b50508160011b916000199060031b1c1916176065555b8051906001600160401b03821161091e5781906104cf606654612a4a565b601f81116109ac575b50602090601f831160011461093f57600092610934575b50508160011b916000199060031b1c1916176066555b61051a60ff60005460081c1661045881613320565b8051906001600160401b03821161091e57819061053961012f54612a4a565b601f81116108ad575b50602090601f831160011461084357600092610838575b50508160011b916000199060031b1c19161761012f555b818316156107f35782821660009081527fbf6e38b75f9a2d666aff0bd0632d02d526d28bc934c5faccca44b56e8ad5636660205260409020546097936105df91849190600080516020613cae8339815191529060ff16156107b0575b60005260c96020521660406000206131d6565b508181161561076b576106a2926000805280602052604060002083831660005260205260ff604060002054161561072e575b6000805260c96020526106468284167f81fe90a866a48a634a12852c1be675b683a22307409932a7443b8029347be7566131d6565b507f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c908160005280602052604060002084841660005260205260ff60406000205416156106eb575b5060005260c96020521660406000206131d6565b5061012d600181540190556106b357005b61ff0019600054166000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b8160005260205260406000208383166000526020526040600020600160ff198254161790553383831682600080516020613c6e833981519152600080a48561068e565b60008080526020828152604080832085871680855292528220805460ff191660011790553391600080516020613c6e8339815191528180a4610611565b60405162461bcd60e51b815260206004820152601a60248201527f6f776e65722063616e6e6f7420626520616464726573732830290000000000006044820152606490fd5b806000528660205260406000208383166000526020526040600020600160ff198254161790553383831682600080516020613c6e833981519152600080a46105cc565b60405162461bcd60e51b815260206004820152601c60248201527f666163746f72792063616e6e6f742062652061646472657373283029000000006044820152606490fd5b015190508680610559565b61012f60009081528281209350601f198516905b818110610895575090846001959493921061087c575b505050811b0161012f55610570565b015160001960f88460031b161c1916905586808061086d565b92936020600181928786015181550195019301610857565b61012f6000529091507f232da9e50dad2971456a78fb5cd6ff6b75019984d6e918139ce990999420f979601f840160051c81019160208510610914575b90601f859493920160051c01905b8181106109055750610542565b600081558493506001016108f8565b90915081906108ea565b634e487b7160e01b600052604160045260246000fd5b0151905087806104ef565b9250606660005280600020906000935b601f1984168510610991576001945083601f19811610610978575b505050811b01606655610505565b015160001960f88460031b161c1916905587808061096a565b8181015183556020948501946001909301929091019061094f565b60666000529091507f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94354601f840160051c810160208510610a12575b90849392915b601f830160051c82018110610a035750506104d8565b600081558594506001016109ed565b50806109e7565b01519050888061049b565b9250606560005280600020906000935b601f1984168510610a76576001945083601f19811610610a5d575b505050811b016065556104b1565b015160001960f88460031b161c19169055888080610a4f565b81810151835560209485019460019093019290910190610a34565b60656000529091507f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c7601f840160051c810160208510610af7575b90849392915b601f830160051c82018110610ae8575050610484565b60008155859450600101610ad2565b5080610acc565b61ffff19166101011760005587610442565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561042c5750600160ff82161461042c565b50600160ff821610610425565b346102e45760403660031901126102e457610bcf600435610baf61244c565b90806000526097602052610bca6001604060002001546125b1565b6128e0565b005b346102e45760003660031901126102e4576020604051600080516020613c8e8339815191528152f35b346102e45760603660031901126102e457610c13612436565b610c1b6125a2565b60443591610c2883612a27565b6001600160a01b0391903390831603610c9c578215610c9557805b84600052610132602052826040600020911660018060a01b0319825416179055604051921515835216907fb688daf266707251b810cde26b1bedfbbc6aa98cfc5667ea84fc354483e2ac8e60203392a4005b6000610c43565b60405162461bcd60e51b815260206004820152601d60248201527f455243353732353a206e6f74206f776e6572206f6620746f6b656e49640000006044820152606490fd5b346102e45760203660031901126102e45760043560005260c96020526020604060002054604051908152f35b346102e45760203660031901126102e457610d40610d2c60043561371f565b604051918291602083526020830190612411565b0390f35b346102e4576020806003193601126102e457600435610d6a610d6582612f58565b613a0e565b8060005261012e82528160018060a01b036040600020541691602460405180948193636007edcd60e11b835260048301525afa908115610de257600091610db5575b50604051908152f35b90508181813d8311610ddb575b610dcc818361247d565b810103126102e4575182610dac565b503d610dc2565b6040513d6000823e3d90fd5b346102e45760803660031901126102e457610e07612436565b610e0f61244c565b606435916001600160401b0383116102e457366023840112156102e457610e43610bcf9336906024816004013591016124b9565b9160443591612baa565b346102e45760203660031901126102e45760043560005261012e602052602060018060a01b0360406000205416604051908152f35b346102e45760403660031901126102e457610e9b612436565b610ea361244c565b9060018060a01b0380911660005261013360205260406000209116600052602052602060ff604060002054166040519015158152f35b346102e45760403660031901126102e457610ef2612436565b610efa6125a2565b6001600160a01b0390911690338214610f6c5733600052606a602052604060002082600052602052610f3c8160406000209060ff801983541691151516179055565b60405190151581527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b60405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606490fd5b346102e45760003660031901126102e457602060405160008152f35b346102e4576020806003193601126102e457600435610fea610d6582612f58565b8060005261012e82528160018060a01b0360406000205416916024604051809481936313c17b0160e31b835260048301525afa908115610de257600091610db55750604051908152f35b346102e4576020806003193601126102e45761104e612436565b6000805260978252604060002033600052825260ff604060002054168015611148575b156111035760c9610bcf92600080516020613c8e833981519152806000526097825260406000209360018060a01b03169384600052825260ff60406000205416156110c5575b6000525260406000206131d6565b806000526097825260406000208460005282526040600020600160ff19825416179055338482600080516020613c6e833981519152600080a46110b7565b60405162461bcd60e51b815260048101839052601a60248201527f4f6e6c792061646d696e206f7220666163746f727920726f6c650000000000006044820152606490fd5b50600080516020613cae83398151915260005260978252604060002033600052825260ff60406000205416611071565b346102e45760003660031901126102e45760405160009060665461119b81612a4a565b80835260019180831690811561121e57506001146111c4575b610d4083610d2c8187038261247d565b6066600090815260209450917f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943545b82841061120b57505050810190910190610d2c816111b4565b80548585018701529285019281016111f2565b610d409550610d2c93506020915091849260ff191682840152151560051b82010193506111b4565b346102e45760203660031901126102e4576004356001600160401b038082116102e457366023830112156102e45781600401359081116102e457600560243683831b85018201116102e45760005b83811061129d57005b806112b1836112b693861b88010135613a4c565b61344c565b611294565b346102e45760403660031901126102e4576112d461244c565b600435600052609760205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346102e45760403660031901126102e45760043560005260c9602052602061133660243560406000206131a0565b905460405160039290921b1c6001600160a01b03168152f35b346102e45760003660031901126102e4573360009081527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c7602052604090205461139b9060ff16613380565b610130805460ff191660011790557f9619d747a1614e9f2c546f61e7c0c75ab0fc38b67f952b2e4cdd71558dcf1fc5600080a1005b346102e4576020806003193601126102e4576004356113f1610d6582612f58565b60005261012e8152600460018060a01b038281604060002054166040519384809263277d415b60e11b82525afa918215610de257600092611437575b5060405191168152f35b9091508281813d8311611468575b61144f818361247d565b810103126102e4575181811681036102e457908361142d565b503d611445565b346102e457602090816003193601126102e457600435611491610d6582612f58565b8060005261012e83528160018060a01b0360406000205416916024604051809481936352f61b0560e01b835260048301525afa908115610de25783926000926114e1575b50500151604051908152f35b915091508082813d8311611564575b6114fa818361247d565b810103126102e4576040519081018181106001600160401b0382111761091e57839260c09160405280518352838101518484015260408101516040840152606081015160608401526080810151608084015260a081015160a0840152015160c082015283806114d5565b503d6114f0565b346102e4576020806003193601126102e45760043561158c610d6582612f58565b8060005261012e82528160018060a01b0360406000205416916024604051809481936381d0526d60e01b835260048301525afa908115610de257600091610db55750604051908152f35b346102e4576020806003193601126102e4576115f0612436565b6115f981612969565b9061160382613609565b92611611604051948561247d565b828452601f1961162084613609565b0160005b8181106116745750505060005b8281106116465760405180610d40868261250e565b8061165461166f928461365d565b61165e8287613649565b526116698186613649565b5061344c565b611631565b829061167e613620565b82828901015201611624565b346102e45760203660031901126102e457600435600052610132602052602060018060a01b0360406000205416604051908152f35b346102e45760003660031901126102e45760206040517f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c8152f35b346102e45760203660031901126102e45760206102dc611718612436565b612969565b346102e45760403660031901126102e457602061174461173b612436565b60243590613bf8565b6040519015158152f35b346102e45760203660031901126102e457602061176c600435612a27565b6040516001600160a01b039091168152f35b346102e45760203660031901126102e45760043561179e610d6582612f58565b600081815261012e602052604090819020548151632bb2b0e960e11b81526004810193909352829060249082906001600160a01b03165afa8015610de2576000906000906117f7575b6040809350519182526020820152f35b50506040813d604011611829575b816118126040938361247d565b810103126102e457806020604092519101516117e7565b3d9150611805565b346102e4576020806003193601126102e4576001600160401b036004358181116102e4576118639036906004016124f0565b906000805260978352604060002033600052835261188860ff60406000205416613380565b61189860ff6101305416156133c7565b815190811161091e5761012f916118af8354612a4a565b601f81116119b9575b508390601f831160011461192d57918061191d94927fbc3db6020edb6553e425d2c6b885f16f8b9fe08db2e27230763ee8a6f2c32e099694600092611922575b50508160011b916000199060031b1c19161790555b6040519181839283528201612a84565b0390a1005b0151905086806118f8565b90601f1983169184600052856000209260005b8181106119a257509260019285927fbc3db6020edb6553e425d2c6b885f16f8b9fe08db2e27230763ee8a6f2c32e09989661191d989610611989575b505050811b01905561190d565b015160001960f88460031b161c1916905586808061197c565b929387600181928786015181550195019301611940565b8360005284600020601f840160051c8101918685106119f5575b601f0160051c01905b8181106119e957506118b8565b600081556001016119dc565b90915081906119d3565b346102e45760203660031901126102e45760043560fd54811015611a3657611a2860209161316f565b90546040519160031b1c8152f35b60405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608490fd5b346102e457610bcf611aa13661256d565b9060405192611aaf84612462565b60008452612baa565b346102e45760403660031901126102e4576040611adf611ad6612436565b6024359061365d565b8151815181526020918201516001600160a01b031691810191909152f35b346102e4576020806003193601126102e457600435611b1e610d6582612f58565b8060005261012e82528160018060a01b036040600020541691602460405180948193631d2948ad60e11b835260048301525afa908115610de257600091610db55750604051908152f35b346102e45760203660031901126102e457610bcf600435613a4c565b346102e45760403660031901126102e457611b9d61244c565b336001600160a01b03821603611bb957610bcf906004356128e0565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b346102e45760403660031901126102e457611c2f612436565b611c376125a2565b3360005261013360205260406000209160018060a01b03169182600052602052611c718160406000209060ff801983541691151516179055565b60405190151581527f199acb87f54d9aa34d4c071192d94f5ec4e0b152f52b81209d89085dd7dade7e60203392a3005b346102e45760403660031901126102e45760206102dc611cbf612436565b602435906130e1565b346102e45760403660031901126102e457610bcf60043560c9611ce961244c565b918060005260209060978252611d066001604060002001546125b1565b60008181526097835260408082206001600160a01b0390961680835295845290205460ff16156110c5576000525260406000206131d6565b346102e45760203660031901126102e45760043560005260976020526020600160406000200154604051908152f35b346102e457610bcf611d7e3661256d565b91611d91611d8c8433612c35565b612b48565b612cfd565b346102e45760603660031901126102e457600435611db261244c565b60443591906001600160a01b03831683036102e4573360009081527f81bcdf06b56c0ed62a68a6ae231e66722c27e6665c84ec0015693a6d86f2bb936020526040902054611e029060ff16613404565b60005b828110611e0e57005b611e1c90611669858461345b565b611e05565b346102e45760003660031901126102e457602060ff61013054166040519015158152f35b346102e45760603660031901126102e457611e5e612436565b604435602435611e6e81836131b8565b92611e7884613609565b93611e86604051958661247d565b808552611e95601f1991613609565b0160005b818110611eeb575050815b838110611eb95760405180610d40878261250e565b80611669611eca611ee6938561365d565b611ed486846131b8565b90611edf828a613649565b5287613649565b611ea4565b602090611ef6613620565b82828901015201611e99565b346102e45760003660031901126102e457602060fd54604051908152f35b346102e45760403660031901126102e4576001600160401b036004356024358281116102e457611f549036906004016124f0565b91611f6560ff6101305416156133c7565b3360009081527fe4cf10fb495b87740596bf415e12139e7acbbde924b6f17b761a4fa439342173602090815260409091205490929060ff16156120bd57611fae610d6582612f58565b6000526101318252604060002091835191821161091e57611fcf8354612a4a565b601f8111612077575b5080601f83116001146120145750819293600092612009575b5050600019600383901b1c191660019190911b179055005b015190508380611ff1565b90601f198316948460005282600020926000905b87821061205f575050836001959610612046575b505050811b019055005b015160001960f88460031b161c1916905583808061203c565b80600185968294968601518155019501930190612028565b8360005281600020601f840160051c8101918385106120b3575b601f0160051c01905b8181106120a75750611fd8565b6000815560010161209a565b9091508190612091565b60405162461bcd60e51b815260048101849052601d60248201527f426f6e644e66743a204f6e6c79207572692073657474657220726f6c650000006044820152606490fd5b346102e45760403660031901126102e45761211b612436565b602435906001600160a01b03808061213285612a27565b1692169180831461222d57803314908115612208575b501561219d57600083815260696020526040902080546001600160a01b0319168317905561217583612a27565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b60405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608490fd5b9050600052606a60205260406000203360005260205260ff6040600020541684612148565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b346102e45760203660031901126102e457602061176c600435612b1c565b346102e45760003660031901126102e4576040516000906065546122bd81612a4a565b80835260019180831690811561121e57506001146122e557610d4083610d2c8187038261247d565b6065600090815260209450917f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c75b82841061232c57505050810190910190610d2c816111b4565b8054858501870152928501928101612313565b346102e45760003660031901126102e4576020604051600080516020613cae8339815191528152f35b346102e45760203660031901126102e457600435906001600160e01b031982168083036102e45760209263bd3a202b60e01b82149182156123dd575b82156123b3575b505015158152f35b63780e9d6360e01b14915081156123cd575b5083806123ab565b6123d791506136af565b836123c5565b91506123e8816136af565b916123a4565b60005b8381106124015750506000910152565b81810151838201526020016123f1565b9060209161242a815180928185528580860191016123ee565b601f01601f1916010190565b600435906001600160a01b03821682036102e457565b602435906001600160a01b03821682036102e457565b602081019081106001600160401b0382111761091e57604052565b90601f801991011681019081106001600160401b0382111761091e57604052565b6001600160401b03811161091e57601f01601f191660200190565b9291926124c58261249e565b916124d3604051938461247d565b8294818452818301116102e4578281602093846000960137010152565b9080601f830112156102e45781602061250b933591016124b9565b90565b60208082019080835283518092528060408094019401926000905b83821061253857505050505090565b90919293948382826125606001948a51602090805183528160018060a01b0391015116910152565b0196019493920190612529565b60609060031901126102e4576001600160a01b039060043582811681036102e4579160243590811681036102e4579060443590565b6024359081151582036102e457565b60009080825260209060978252604092838120338252835260ff8482205416156125db5750505050565b8351916001600160401b03903360608501838111868210176128cc578752602a855285850191873684378551156128b857603083538551916001928310156128a4576078602188015360295b83811161283a57506127f857908751936080850190858210908211176127e4578852604284528684019460603687378451156127d0576030865384518210156127d05790607860218601536041915b818311612762575050506127205761271c938693612700936126f16048946126c89a519a8b9576020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8c88015251809260378801906123ee565b8401917001034b99036b4b9b9b4b733903937b6329607d1b6037840152518093868401906123ee565b0103602881018752018561247d565b5192839262461bcd60e51b845260048401526024830190612411565b0390fd5b60648587519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f811660108110156127bc576f181899199a1a9b1b9c1cb0b131b232b360811b901a61279285886131c5565b5360041c9280156127a857600019019190612676565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b86526041600452602486fd5b60648789519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b90600f81166010811015612890576f181899199a1a9b1b9c1cb0b131b232b360811b901a612868838a6131c5565b5360041c90801561287c5760001901612627565b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b88526032600452602488fd5b634e487b7160e01b86526032600452602486fd5b634e487b7160e01b85526032600452602485fd5b634e487b7160e01b85526041600452602485fd5b90604061291e9260009080825260976020528282209360018060a01b03169384835260205260ff8383205416612921575b815260c960205220613244565b50565b808252609760205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4612911565b6001600160a01b0316801561298957600052606860205260406000205490565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608490fd5b156129e757565b60405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606490fd5b6000908152606760205260409020546001600160a01b031661250b8115156129e0565b90600182811c92168015612a7a575b6020831014612a6457565b634e487b7160e01b600052602260045260246000fd5b91607f1691612a59565b9060009161012f805491612a9783612a4a565b918282526001938481169081600014612af95750600114612ab9575b50505050565b90919394506000526020928360002092846000945b838610612ae5575050505001019038808080612ab3565b805485870183015294019385908201612ace565b9294505050602093945060ff191683830152151560051b01019038808080612ab3565b612b2d612b2882612f58565b6129e0565b6000908152606960205260409020546001600160a01b031690565b15612b4f57565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b90612bce939291612bbe611d8c8433612c35565b612bc9838383612cfd565b612f75565b15612bd557565b60405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b906001600160a01b038080612c4984612a27565b16931691838314938415612c7c575b508315612c66575b50505090565b612c7291929350612b1c565b1614388080612c60565b909350600052606a60205260406000208260005260205260ff604060002054169238612c58565b15612caa57565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b612d2191612d0a84612a27565b6001600160a01b0393848416939185168414612ca3565b838216938415612f0757839182612e4e575060fd54600087815260fe602052604090208190559150600160401b82101561091e57612da39286612d87612d6e85600189970160fd5561316f565b819391549060031b600019811b9283911b169119161790565b90555b828603612e1b575b50612d9c86612a27565b1614612ca3565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600084815260696020526040812060018060a01b03199081815416905583825260686020526040822060001981540190558482526040822060018154019055858252606760205284604083209182541617905580a4565b612e2490612969565b6040600087815260fb602052818120838252602052888282205588815260fc602052205538612d92565b858303612e60575b50612da392612d8a565b612e6b919250612969565b600019810191908211612ef157612da392849260009088825260209060fc825260409182842054828103612eba575b508a8452838381205586845260fb81528284209184525281205592612e56565b87855260fb825283852083865282528385205488865260fb835284862082875283528085872055855260fc82528385205538612e9a565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b6000908152606760205260409020546001600160a01b0316151590565b9293600093909291803b156130d657948491612fcf9660405180948193630a85bd0160e11b9788845233600485015260018060a01b0380921660248501526044840152608060648401528260209b8c976084830190612411565b0393165af1849181613092575b50613081575050503d600014613079573d612ff68161249e565b90613004604051928361247d565b81528091833d92013e5b805191826130765760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b01fd5b50606061300e565b6001600160e01b0319161492509050565b9091508581813d83116130cf575b6130aa818361247d565b810103126130cb57516001600160e01b0319811681036130cb579038612fdc565b8480fd5b503d6130a0565b505050915050600190565b6130ea81612969565b8210156131165760018060a01b031660005260fb60205260406000209060005260205260406000205490565b60405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608490fd5b60fd5481101561318a5760fd60005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b805482101561318a5760005260206000200190600090565b91908203918211612ef157565b90815181101561318a570160200190565b9190600183016000908282528060205260408220541560001461323e57845494600160401b86101561322a578361321a612d6e886001604098999a018555846131a0565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b90600182019060009281845282602052604084205490811515600014613319576000199180830181811161287c57825490848201918211613305578082036132d0575b505050805480156132bc5782019161329f83836131a0565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b6132f06132e0612d6e93866131a0565b90549060031b1c928392866131a0565b90558652846020526040862055388080613287565b634e487b7160e01b88526011600452602488fd5b5050505090565b1561332757565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b1561338757565b60405162461bcd60e51b8152602060048201526018602482015277426f6e644e66743a204f6e6c792061646d696e20726f6c6560401b6044820152606490fd5b156133ce57565b60405162461bcd60e51b815260206004820152600e60248201526d2737ba103430b83832b734b7339760911b6044820152606490fd5b1561340b57565b60405162461bcd60e51b8152602060048201526019602482015278426f6e644e66743a204f6e6c79206d696e74657220726f6c6560381b6044820152606490fd5b6000198114612ef15760010190565b61012d8054939290916001600160a01b038082169182156135795761348861348288612f58565b156135bd565b60fd549060009088825260209060fe82526040938085852055600160401b8110156135655761012e92918b6134c9612d6e8460016134d0960160fd5561316f565b9055612969565b86845260fb825284842081855282528a858520558a845260fc8252848420556134fb6134828b612f58565b85835260688152838320805460010190558983526067815283832080546001600160a01b03199081168817909155958a90847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4522092169082541617905560018154019055565b634e487b7160e01b84526041600452602484fd5b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b156135c457565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b6001600160401b03811161091e5760051b60200190565b60405190604082018281106001600160401b0382111761091e5760405260006020838281520152565b805182101561318a5760209160051b010190565b906136709161366a613620565b506130e1565b8060005261012e60205260018060a01b036040600020541660405191604083018381106001600160401b0382111761091e576040528252602082015290565b63ffffffff60e01b16635a05180f60e01b81149081156136cd575090565b637965db0b60e01b8114915081156136e3575090565b6380ac58cd60e01b81149150811561370e575b8115613700575090565b6301ffc9a760e01b14905090565b635b5e139f60e01b811491506136f6565b61372881612f58565b156139c9576000818152602090610131825260409081812091805182938181549561375287612a4a565b928383526001978989821691826000146139a957505060011461396b575b5061377d9250038261247d565b80516139625750613790612b2886612f58565b8051926137a7846137a081612a84565b038561247d565b83511561394c5791948592819072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b828181101561393d575b50506d04ee2d6d415b85acef81000000008084101561392f575b50662386f26fc1000080841015613920575b506305f5e10080841015613911575b5061271080841015613902575b5060648310156138f2575b600a809310156138e9575b90816021818a019961385c6138478c61249e565b9b61385489519d8e61247d565b808d5261249e565b8b8b019890601f1901368a37508a0101905b6138b3575b50505050906138a79461250b94939251958361389888955180928880890191016123ee565b840191518093868401906123ee565b0103808452018261247d565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049182156138e45791908261386e565b613873565b80970196613833565b9691606460029104920196613828565b6004919893049201963861381d565b60089198930492019638613810565b60109198930492019638613801565b8791989304920196386137ef565b949850889404925038806137d5565b509250925050519061395d82612462565b815290565b94505050505090565b915050845281868086208787915b85831061399057505061377d935082010138613770565b8091929450548385880101520191018790878593613979565b60ff19168582015261377d95151560051b85010192503891506137709050565b60405162461bcd60e51b815260206004820152601f60248201527f55524920717565727920666f72206e6f6e6578697374656e7420746f6b656e006044820152606490fd5b15613a1557565b60405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d1bdad95b9259608a1b6044820152606490fd5b613a568133613bf8565b15613b3b57600090808252602061012e815260018060a01b0383828260408320541660246040518094819363379607f560e01b83528960048401525af1948515613b2f578095613ada575b5050907fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c31291613acf84612a27565b1693604051908152a3565b909194508282813d8311613b28575b613af3818361247d565b81010312613b25575051927fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c31238613aa1565b80fd5b503d613ae9565b604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152600c60248201526b139bdd08185c1c1c9bdd995960a21b6044820152606490fd5b613b7b610d6582612f58565b602060009282845261012e8252604460018060a01b0360408620541693604051948593849263d744515f60e01b8452600484015260248301525afa918215613b2f578092613bc857505090565b9091506020823d8211613bf0575b81613be36020938361247d565b81010312613b2557505190565b3d9150613bd6565b906001600160a01b038080613c0c84612a27565b16931691838314938415613c45575b508315613c285750505090565b909192506000526101326020526040600020541614388080612c60565b90935060005261013360205260406000208260005260205260ff604060002054169238613c1b56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6dfbefbf47cfe66b701d8cfdbce1de81c821590819cb07e71cb01b6602fb0ee27a26469706673582212201336c9080152ccfdb2ca03fe3eaa23b0194cc1770ffac2831c5536779f08ffdc64736f6c63430008110033