{
  "_format": "hh-sol-artifact-1",
  "contractName": "VotesUtils",
  "sourceName": "contracts/x-allocation-voting-governance/libraries/VotesUtils.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "bits",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "SafeCastOverflowedUintDowncast",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "CLOCK_MODE",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "clock",
      "outputs": [
        {
          "internalType": "uint48",
          "name": "",
          "type": "uint48"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "getVotes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6107e861003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80634bf5d7e91461005b57806391ddadf414610079578063b623d38414610098578063eb9019d4146100ba575b600080fd5b6100636100db565b60405161007091906105bd565b60405180910390f35b610081610197565b60405165ffffffffffff9091168152602001610070565b8180156100a457600080fd5b506100b86100b3366004610608565b61021c565b005b6100cd6100c836600461062c565b610248565b604051908152602001610070565b606060006100e761052a565b805460408051634bf5d7e960e01b815290519293506001600160a01b0390911691634bf5d7e9916004808201926000929091908290030181865afa92505050801561015457506040513d6000823e601f3d908101601f19168201604052610151919081019061066e565b60015b61019157505060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b92915050565b6000806101a261052a565b8054604080516324776b7d60e21b815290519293506001600160a01b03909116916391ddadf4916004808201926020929091908290030181865afa92505050801561020a575060408051601f3d908101601f191682019092526102079181019061071a565b60015b6101915761021661054e565b91505090565b600061022661052a565b80546001600160a01b0319166001600160a01b03939093169290921790915550565b60008061025361052a565b8054604051630748d63560e31b81529192507f1da8cbbb2b12987a437595605432a6bbe84c08e9685afaaee593f05659f50d00916000916001600160a01b031690633a46b1a8906102aa9089908990600401610742565b602060405180830381865afa1580156102c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102eb919061075b565b60068301549091506001600160a01b0316801580159061038457506040516318be49d960e01b81526000906001600160a01b038316906318be49d990610337908b908b90600401610742565b602060405180830381865afa158015610354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103789190610774565b6001600160a01b031614155b156104035760405163c61c06e760e01b81526001600160a01b0382169063c61c06e7906103b7908a908a90600401610742565b602060405180830381865afa1580156103d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f8919061075b565b945050505050610191565b60048301546001600160a01b031680156104935760405163a56b576560e01b81526001600160a01b0382169063a56b576590610445908b908b90600401610742565b602060405180830381865afa158015610462573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610486919061075b565b6104909084610791565b92505b6001600160a01b0382161561051e5760405163094f6f2960e21b81526001600160a01b0383169063253dbca4906104d0908b908b90600401610742565b602060405180830381865afa1580156104ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610511919061075b565b61051b9084610791565b92505b50909695505050505050565b7f6eb1bf0a160cdf1b5e63f5e5c6b310f6c2542cd9e2a47ff1bc977c526dfab50090565b60006105594361055e565b905090565b600065ffffffffffff821115610595576040516306dfcc6560e41b8152603060048201526024810183905260440160405180910390fd5b5090565b60005b838110156105b457818101518382015260200161059c565b50506000910152565b60208152600082518060208401526105dc816040850160208701610599565b601f01601f19169190910160400192915050565b6001600160a01b038116811461060557600080fd5b50565b60006020828403121561061a57600080fd5b8135610625816105f0565b9392505050565b6000806040838503121561063f57600080fd5b823561064a816105f0565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561068057600080fd5b81516001600160401b038082111561069757600080fd5b818401915084601f8301126106ab57600080fd5b8151818111156106bd576106bd610658565b604051601f8201601f19908116603f011681019083821181831017156106e5576106e5610658565b816040528281528760208487010111156106fe57600080fd5b61070f836020830160208801610599565b979650505050505050565b60006020828403121561072c57600080fd5b815165ffffffffffff8116811461062557600080fd5b6001600160a01b03929092168252602082015260400190565b60006020828403121561076d57600080fd5b5051919050565b60006020828403121561078657600080fd5b8151610625816105f0565b8082018082111561019157634e487b7160e01b600052601160045260246000fdfea26469706673582212201747c1cb9d3a93239cd9bd7818d84e31710c1ace5f26859012fae7de8ab5414464736f6c63430008140033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80634bf5d7e91461005b57806391ddadf414610079578063b623d38414610098578063eb9019d4146100ba575b600080fd5b6100636100db565b60405161007091906105bd565b60405180910390f35b610081610197565b60405165ffffffffffff9091168152602001610070565b8180156100a457600080fd5b506100b86100b3366004610608565b61021c565b005b6100cd6100c836600461062c565b610248565b604051908152602001610070565b606060006100e761052a565b805460408051634bf5d7e960e01b815290519293506001600160a01b0390911691634bf5d7e9916004808201926000929091908290030181865afa92505050801561015457506040513d6000823e601f3d908101601f19168201604052610151919081019061066e565b60015b61019157505060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b92915050565b6000806101a261052a565b8054604080516324776b7d60e21b815290519293506001600160a01b03909116916391ddadf4916004808201926020929091908290030181865afa92505050801561020a575060408051601f3d908101601f191682019092526102079181019061071a565b60015b6101915761021661054e565b91505090565b600061022661052a565b80546001600160a01b0319166001600160a01b03939093169290921790915550565b60008061025361052a565b8054604051630748d63560e31b81529192507f1da8cbbb2b12987a437595605432a6bbe84c08e9685afaaee593f05659f50d00916000916001600160a01b031690633a46b1a8906102aa9089908990600401610742565b602060405180830381865afa1580156102c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102eb919061075b565b60068301549091506001600160a01b0316801580159061038457506040516318be49d960e01b81526000906001600160a01b038316906318be49d990610337908b908b90600401610742565b602060405180830381865afa158015610354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103789190610774565b6001600160a01b031614155b156104035760405163c61c06e760e01b81526001600160a01b0382169063c61c06e7906103b7908a908a90600401610742565b602060405180830381865afa1580156103d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f8919061075b565b945050505050610191565b60048301546001600160a01b031680156104935760405163a56b576560e01b81526001600160a01b0382169063a56b576590610445908b908b90600401610742565b602060405180830381865afa158015610462573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610486919061075b565b6104909084610791565b92505b6001600160a01b0382161561051e5760405163094f6f2960e21b81526001600160a01b0383169063253dbca4906104d0908b908b90600401610742565b602060405180830381865afa1580156104ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610511919061075b565b61051b9084610791565b92505b50909695505050505050565b7f6eb1bf0a160cdf1b5e63f5e5c6b310f6c2542cd9e2a47ff1bc977c526dfab50090565b60006105594361055e565b905090565b600065ffffffffffff821115610595576040516306dfcc6560e41b8152603060048201526024810183905260440160405180910390fd5b5090565b60005b838110156105b457818101518382015260200161059c565b50506000910152565b60208152600082518060208401526105dc816040850160208701610599565b601f01601f19169190910160400192915050565b6001600160a01b038116811461060557600080fd5b50565b60006020828403121561061a57600080fd5b8135610625816105f0565b9392505050565b6000806040838503121561063f57600080fd5b823561064a816105f0565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561068057600080fd5b81516001600160401b038082111561069757600080fd5b818401915084601f8301126106ab57600080fd5b8151818111156106bd576106bd610658565b604051601f8201601f19908116603f011681019083821181831017156106e5576106e5610658565b816040528281528760208487010111156106fe57600080fd5b61070f836020830160208801610599565b979650505050505050565b60006020828403121561072c57600080fd5b815165ffffffffffff8116811461062557600080fd5b6001600160a01b03929092168252602082015260400190565b60006020828403121561076d57600080fd5b5051919050565b60006020828403121561078657600080fd5b8151610625816105f0565b8082018082111561019157634e487b7160e01b600052601160045260246000fdfea26469706673582212201747c1cb9d3a93239cd9bd7818d84e31710c1ace5f26859012fae7de8ab5414464736f6c63430008140033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
